{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import re\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "plt.style.use('ggplot')\n",
    "from pylab import mpl\n",
    "mpl.rcParams['font.sans-serif'] = ['SimHei']  #解决seaborn中文字体显示问题\n",
    "plt.rc('figure', figsize=(10, 10))  #把plt默认的图片size调大一点\n",
    "plt.rcParams[\"figure.dpi\"] =mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_kdgd = pd.read_csv(\"幼儿园.csv\")\n",
    "data_pmsc = pd.read_csv(\"中小学.csv\")\n",
    "data_trn = pd.read_csv(\"外语培训.csv\")\n",
    "data_clg = pd.read_csv(\"职业院校.csv\")\n",
    "data_tic = pd.read_csv(\"teachinchina.csv\")\n",
    "data_jlc = pd.read_csv(\"jobleadchina.csv\")\n",
    "data_gm = pd.read_csv(\"groupmembers.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 189 entries, 0 to 188\n",
      "Data columns (total 7 columns):\n",
      "area           189 non-null object\n",
      "company        189 non-null object\n",
      "exp_title      189 non-null object\n",
      "link           189 non-null object\n",
      "salary         189 non-null object\n",
      "title          189 non-null object\n",
      "update_time    189 non-null object\n",
      "dtypes: object(7)\n",
      "memory usage: 10.4+ KB\n"
     ]
    }
   ],
   "source": [
    "data_kdgd.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>company</th>\n",
       "      <th>exp_title</th>\n",
       "      <th>link</th>\n",
       "      <th>salary</th>\n",
       "      <th>title</th>\n",
       "      <th>update_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>139</th>\n",
       "      <td>江苏-苏州-太仓市</td>\n",
       "      <td>太仓华顿外国语学校</td>\n",
       "      <td>一年以上/大学本科以上</td>\n",
       "      <td>/jobs_view_390894.html</td>\n",
       "      <td>5K-7K/月</td>\n",
       "      <td>幼儿园教师（英语）</td>\n",
       "      <td>2019/04/03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>广东-佛山</td>\n",
       "      <td>广东省佛山习思堂教育</td>\n",
       "      <td>不限/大专以上</td>\n",
       "      <td>/jobs_view_409241.html</td>\n",
       "      <td>5K-6K/月</td>\n",
       "      <td>英语早教老师（提供吃住+六险一金）</td>\n",
       "      <td>2019/04/06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>55</th>\n",
       "      <td>广东-东莞</td>\n",
       "      <td>上海交通大学昂立教育集团东莞分校</td>\n",
       "      <td>不限/大专以上</td>\n",
       "      <td>/jobs_view_403228.html</td>\n",
       "      <td>5K-8K/月</td>\n",
       "      <td>幼儿英语老师（东城区）</td>\n",
       "      <td>2019/04/04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>151</th>\n",
       "      <td>海南-海口-龙华区</td>\n",
       "      <td>海口斯诺威培训中心</td>\n",
       "      <td>一年以上/大专以上</td>\n",
       "      <td>/jobs_view_423192.html</td>\n",
       "      <td>4K-7K/月</td>\n",
       "      <td>幼儿英语教师</td>\n",
       "      <td>2019/04/02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>广东-深圳-罗湖区</td>\n",
       "      <td>深圳市学为方文化发展有限公司</td>\n",
       "      <td>一年以上/大学本科以上</td>\n",
       "      <td>/jobs_view_430852.html</td>\n",
       "      <td>5K-8K/月</td>\n",
       "      <td>幼儿英语老师</td>\n",
       "      <td>2019/04/04</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          area           company    exp_title                    link  \\\n",
       "139  江苏-苏州-太仓市         太仓华顿外国语学校  一年以上/大学本科以上  /jobs_view_390894.html   \n",
       "20       广东-佛山        广东省佛山习思堂教育      不限/大专以上  /jobs_view_409241.html   \n",
       "55       广东-东莞  上海交通大学昂立教育集团东莞分校      不限/大专以上  /jobs_view_403228.html   \n",
       "151  海南-海口-龙华区         海口斯诺威培训中心    一年以上/大专以上  /jobs_view_423192.html   \n",
       "39   广东-深圳-罗湖区    深圳市学为方文化发展有限公司  一年以上/大学本科以上  /jobs_view_430852.html   \n",
       "\n",
       "      salary              title update_time  \n",
       "139  5K-7K/月          幼儿园教师（英语）  2019/04/03  \n",
       "20   5K-6K/月  英语早教老师（提供吃住+六险一金）  2019/04/06  \n",
       "55   5K-8K/月        幼儿英语老师（东城区）  2019/04/04  \n",
       "151  4K-7K/月             幼儿英语教师  2019/04/02  \n",
       "39   5K-8K/月             幼儿英语老师  2019/04/04  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_kdgd.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 把来自万行教师的四个数据集组合成一个Dataframe\n",
    "data_kdgd['type'] = '幼儿园'\n",
    "data_pmsc['type'] = '中小学'\n",
    "data_trn['type'] = '外语培训'\n",
    "data_clg['type'] = '职业院校'\n",
    "data_wx = pd.concat([data_kdgd, data_pmsc, data_trn, data_clg])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 5787 entries, 0 to 27\n",
      "Data columns (total 8 columns):\n",
      "area           5787 non-null object\n",
      "company        5787 non-null object\n",
      "exp_title      5787 non-null object\n",
      "link           5787 non-null object\n",
      "salary         5787 non-null object\n",
      "title          5787 non-null object\n",
      "update_time    5787 non-null object\n",
      "type           5787 non-null object\n",
      "dtypes: object(8)\n",
      "memory usage: 406.9+ KB\n"
     ]
    }
   ],
   "source": [
    "data_wx.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>company</th>\n",
       "      <th>exp_title</th>\n",
       "      <th>link</th>\n",
       "      <th>salary</th>\n",
       "      <th>title</th>\n",
       "      <th>update_time</th>\n",
       "      <th>type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>179</th>\n",
       "      <td>广东-广州-越秀区</td>\n",
       "      <td>广州沃迩德教育科技有限公司</td>\n",
       "      <td>不限/大学本科以上</td>\n",
       "      <td>/jobs_view_425078.html</td>\n",
       "      <td>5K-8K/月</td>\n",
       "      <td>少儿英语教师</td>\n",
       "      <td>2019/04/04</td>\n",
       "      <td>外语培训</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>509</th>\n",
       "      <td>广东-广州-花都区</td>\n",
       "      <td>广州柠檬树外语教育咨询有限公司</td>\n",
       "      <td>不限/大专以上</td>\n",
       "      <td>/jobs_view_405564.html</td>\n",
       "      <td>6K-12K/月</td>\n",
       "      <td>小学初中（高中）英语教师</td>\n",
       "      <td>2019/04/05</td>\n",
       "      <td>中小学</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2121</th>\n",
       "      <td>江苏-徐州-睢宁县</td>\n",
       "      <td>江苏省睢宁县宁海外国语学校</td>\n",
       "      <td>不限/不限</td>\n",
       "      <td>/jobs_view_307614.html</td>\n",
       "      <td>3.5K-5K/月</td>\n",
       "      <td>初中英语教师</td>\n",
       "      <td>2019/04/04</td>\n",
       "      <td>中小学</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4528</th>\n",
       "      <td>广东-肇庆</td>\n",
       "      <td>名师教育培训中心</td>\n",
       "      <td>不限/不限以上</td>\n",
       "      <td>/jobs_view_257006.html</td>\n",
       "      <td>4K-8K/月</td>\n",
       "      <td>小学英语教师</td>\n",
       "      <td>2019/03/29</td>\n",
       "      <td>中小学</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2434</th>\n",
       "      <td>广东-深圳</td>\n",
       "      <td>深圳自成蹊教育科技有限公司</td>\n",
       "      <td>两年以上/大学本科</td>\n",
       "      <td>/jobs_view_426793.html</td>\n",
       "      <td>5K-8K/月</td>\n",
       "      <td>小学英语老师</td>\n",
       "      <td>2019/04/04</td>\n",
       "      <td>中小学</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           area          company  exp_title                    link  \\\n",
       "179   广东-广州-越秀区    广州沃迩德教育科技有限公司  不限/大学本科以上  /jobs_view_425078.html   \n",
       "509   广东-广州-花都区  广州柠檬树外语教育咨询有限公司    不限/大专以上  /jobs_view_405564.html   \n",
       "2121  江苏-徐州-睢宁县    江苏省睢宁县宁海外国语学校      不限/不限  /jobs_view_307614.html   \n",
       "4528      广东-肇庆         名师教育培训中心    不限/不限以上  /jobs_view_257006.html   \n",
       "2434      广东-深圳    深圳自成蹊教育科技有限公司  两年以上/大学本科  /jobs_view_426793.html   \n",
       "\n",
       "         salary         title update_time  type  \n",
       "179     5K-8K/月        少儿英语教师  2019/04/04  外语培训  \n",
       "509    6K-12K/月  小学初中（高中）英语教师  2019/04/05   中小学  \n",
       "2121  3.5K-5K/月        初中英语教师  2019/04/04   中小学  \n",
       "4528    4K-8K/月        小学英语教师  2019/03/29   中小学  \n",
       "2434    5K-8K/月        小学英语老师  2019/04/04   中小学  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx.sample(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 万行教师数据清洗\n",
    "- 清洗出省份、城市\n",
    "- 经验、学历\n",
    "- 工资\n",
    "\n",
    "#### 1. 清洗出省份、城市"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5008                 广东-广州\n",
       "1727             浙江-金华-义乌市\n",
       "4678    贵州-黔西南布依族苗族自治州-兴义市\n",
       "2361                 广东-深圳\n",
       "3085                 浙江-湖州\n",
       "60                   广东-清远\n",
       "500                  广东-深圳\n",
       "1460             浙江-杭州-滨江区\n",
       "2989                重庆-长寿区\n",
       "4155             江苏-苏州-昆山市\n",
       "Name: area, dtype: object"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx['area'].sample(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>江苏</td>\n",
       "      <td>苏州</td>\n",
       "      <td>相城区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>福建</td>\n",
       "      <td>莆田</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>广东</td>\n",
       "      <td>惠州</td>\n",
       "      <td>惠城区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>广东</td>\n",
       "      <td>深圳</td>\n",
       "      <td>龙岗区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>广东</td>\n",
       "      <td>惠州</td>\n",
       "      <td>惠城区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>广东</td>\n",
       "      <td>深圳</td>\n",
       "      <td>龙岗区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>上海</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>上海</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>江苏</td>\n",
       "      <td>苏州</td>\n",
       "      <td>昆山市</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>广东</td>\n",
       "      <td>东莞</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>广东</td>\n",
       "      <td>东莞</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>广东</td>\n",
       "      <td>广州</td>\n",
       "      <td>越秀区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>广东</td>\n",
       "      <td>广州</td>\n",
       "      <td>黄埔区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>广东</td>\n",
       "      <td>东莞</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>广东</td>\n",
       "      <td>广州</td>\n",
       "      <td>番禺区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>广东</td>\n",
       "      <td>广州</td>\n",
       "      <td>番禺区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>广东</td>\n",
       "      <td>惠州</td>\n",
       "      <td>惠城区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>湖北</td>\n",
       "      <td>武汉</td>\n",
       "      <td>江岸区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>湖北</td>\n",
       "      <td>武汉</td>\n",
       "      <td>江岸区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>广东</td>\n",
       "      <td>佛山</td>\n",
       "      <td>南海区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>广东</td>\n",
       "      <td>佛山</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>浙江</td>\n",
       "      <td>杭州</td>\n",
       "      <td>建德市</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>福建</td>\n",
       "      <td>莆田</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>北京</td>\n",
       "      <td>昌平区</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>浙江</td>\n",
       "      <td>金华</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>湖北</td>\n",
       "      <td>武汉</td>\n",
       "      <td>汉南区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>广东</td>\n",
       "      <td>广州</td>\n",
       "      <td>番禺区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>广东</td>\n",
       "      <td>江门</td>\n",
       "      <td>新会区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>广东</td>\n",
       "      <td>江门</td>\n",
       "      <td>新会区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>湖北</td>\n",
       "      <td>武汉</td>\n",
       "      <td>洪山区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>390</th>\n",
       "      <td>黑龙江</td>\n",
       "      <td>绥化</td>\n",
       "      <td>青冈县</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>391</th>\n",
       "      <td>黑龙江</td>\n",
       "      <td>绥化</td>\n",
       "      <td>青冈县</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>福建</td>\n",
       "      <td>福州</td>\n",
       "      <td>福清市</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>广东</td>\n",
       "      <td>东莞</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>广东</td>\n",
       "      <td>惠州</td>\n",
       "      <td>博罗县</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>江苏</td>\n",
       "      <td>苏州</td>\n",
       "      <td>虎丘区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>江苏</td>\n",
       "      <td>苏州</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>广东</td>\n",
       "      <td>深圳</td>\n",
       "      <td>龙岗区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>广东</td>\n",
       "      <td>惠州</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>广东</td>\n",
       "      <td>深圳</td>\n",
       "      <td>宝安区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>广东</td>\n",
       "      <td>深圳</td>\n",
       "      <td>宝安区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>湖北</td>\n",
       "      <td>武汉</td>\n",
       "      <td>洪山区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>福建</td>\n",
       "      <td>厦门</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>广东</td>\n",
       "      <td>东莞</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>海南</td>\n",
       "      <td>海口</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>浙江</td>\n",
       "      <td>杭州</td>\n",
       "      <td>滨江区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>浙江</td>\n",
       "      <td>杭州</td>\n",
       "      <td>萧山区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>浙江</td>\n",
       "      <td>杭州</td>\n",
       "      <td>西湖区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>浙江</td>\n",
       "      <td>杭州</td>\n",
       "      <td>滨江区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>浙江</td>\n",
       "      <td>杭州</td>\n",
       "      <td>余杭区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>浙江</td>\n",
       "      <td>杭州</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>广东</td>\n",
       "      <td>惠州</td>\n",
       "      <td>惠城区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>安徽</td>\n",
       "      <td>合肥</td>\n",
       "      <td>庐阳区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>广东</td>\n",
       "      <td>珠海</td>\n",
       "      <td>斗门区</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>北京</td>\n",
       "      <td>朝阳区</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>湖北</td>\n",
       "      <td>黄石</td>\n",
       "      <td>大冶市</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>上海</td>\n",
       "      <td>宝山区</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>广东</td>\n",
       "      <td>清远</td>\n",
       "      <td>英德市</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>江苏</td>\n",
       "      <td>苏州</td>\n",
       "      <td>昆山市</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>广东</td>\n",
       "      <td>广州</td>\n",
       "      <td>花都区</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5787 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       0     1     2\n",
       "0     江苏    苏州   相城区\n",
       "1     福建    莆田  None\n",
       "2     广东    惠州   惠城区\n",
       "3     广东    深圳   龙岗区\n",
       "4     广东    惠州   惠城区\n",
       "5     广东    深圳   龙岗区\n",
       "6     上海  None  None\n",
       "7     上海  None  None\n",
       "8     江苏    苏州   昆山市\n",
       "9     广东    东莞  None\n",
       "10    广东    东莞  None\n",
       "11    广东    广州   越秀区\n",
       "12    广东    广州   黄埔区\n",
       "13    广东    东莞  None\n",
       "14    广东    广州   番禺区\n",
       "15    广东    广州   番禺区\n",
       "16    广东    惠州   惠城区\n",
       "17    湖北    武汉   江岸区\n",
       "18    湖北    武汉   江岸区\n",
       "19    广东    佛山   南海区\n",
       "20    广东    佛山  None\n",
       "21    浙江    杭州   建德市\n",
       "22    福建    莆田  None\n",
       "23    北京   昌平区  None\n",
       "24    浙江    金华  None\n",
       "25    湖北    武汉   汉南区\n",
       "26    广东    广州   番禺区\n",
       "27    广东    江门   新会区\n",
       "28    广东    江门   新会区\n",
       "29    湖北    武汉   洪山区\n",
       "..   ...   ...   ...\n",
       "390  黑龙江    绥化   青冈县\n",
       "391  黑龙江    绥化   青冈县\n",
       "0     福建    福州   福清市\n",
       "1     广东    东莞  None\n",
       "2     广东    惠州   博罗县\n",
       "3     江苏    苏州   虎丘区\n",
       "4     江苏    苏州  None\n",
       "5     广东    深圳   龙岗区\n",
       "6     广东    惠州  None\n",
       "7     广东    深圳   宝安区\n",
       "8     广东    深圳   宝安区\n",
       "9     湖北    武汉   洪山区\n",
       "10    福建    厦门  None\n",
       "11    广东    东莞  None\n",
       "12    海南    海口  None\n",
       "13    浙江    杭州   滨江区\n",
       "14    浙江    杭州   萧山区\n",
       "15    浙江    杭州   西湖区\n",
       "16    浙江    杭州   滨江区\n",
       "17    浙江    杭州   余杭区\n",
       "18    浙江    杭州  None\n",
       "19    广东    惠州   惠城区\n",
       "20    安徽    合肥   庐阳区\n",
       "21    广东    珠海   斗门区\n",
       "22    北京   朝阳区  None\n",
       "23    湖北    黄石   大冶市\n",
       "24    上海   宝山区  None\n",
       "25    广东    清远   英德市\n",
       "26    江苏    苏州   昆山市\n",
       "27    广东    广州   花都区\n",
       "\n",
       "[5787 rows x 3 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx['area'].str.split(\"-\", expand=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_wx['province'] = data_wx['area'].str.split(\"-\", expand=True)[0]\n",
    "data_wx['city'] = data_wx['area'].str.split(\"-\", expand=True)[1]\n",
    "# 把北京、天津、上海、重庆的城市改为原来的名字\n",
    "data_wx.loc[data_wx['province'] == '北京', 'city'] = '北京'\n",
    "data_wx.loc[data_wx['province'] == '上海', 'city'] = '上海'\n",
    "data_wx.loc[data_wx['province'] == '天津', 'city'] = '天津'\n",
    "data_wx.loc[data_wx['province'] == '重庆', 'city'] = '重庆'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2. 清洗出经验、学历"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3672    一年以上/大学本科\n",
       "2333      不限/大学本科\n",
       "3239    一年以上/大专以上\n",
       "5125    不限/大学本科以上\n",
       "3101      三年以上/大专\n",
       "Name: exp_title, dtype: object"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx['exp_title'].sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_wx['exp'] = data_wx['exp_title'].str.split(\"/\", expand=True)[0]\n",
    "data_wx['degree'] = data_wx['exp_title'].str.split(\"/\", expand=True)[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['不限', '一年以上', '三年以上', '两年以上', '五年以上', '应届毕业生', '六年以上', '四年以上',\n",
       "       '九年以上', '七年以上', '十年以上', '在读学生', '八年以上'], dtype=object)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx['exp'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "exp_map = {'不限':'经验不限', '一年以上':'一到三年', '三年以上':'三到五年', '两年以上':'一到三年',\n",
    "           '五年以上':'五到十年', '应届毕业生':'经验不限', '六年以上':'五到十年', '四年以上':'三到五年',\n",
    "           '九年以上':'五到十年', '七年以上':'五到十年', '十年以上':'十年以上', '在读学生':'经验不限', \n",
    "           '八年以上':'五到十年'}\n",
    "data_wx['exp'] = data_wx['exp'].map(exp_map)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['大专', '不限', '大学本科以上', '大学本科', '大专以上', '不限以上', '中专以上', '硕士以上', '硕士',\n",
       "       '高中以上', '中专'], dtype=object)"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx['degree'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "degree_map = {'大专':'大专', '不限':'学历不限', '大学本科以上':'本科', '大学本科':'本科', \n",
    "              '大专以上':'大专', '不限以上':'学历不限', '中专以上':'中专', '硕士以上':'硕士', \n",
    "              '硕士':'硕士', '高中以上':'高中', '中专':'中专'}\n",
    "data_wx['degree'] = data_wx['degree'].map(degree_map)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>company</th>\n",
       "      <th>exp_title</th>\n",
       "      <th>link</th>\n",
       "      <th>salary</th>\n",
       "      <th>title</th>\n",
       "      <th>update_time</th>\n",
       "      <th>type</th>\n",
       "      <th>province</th>\n",
       "      <th>city</th>\n",
       "      <th>exp</th>\n",
       "      <th>degree</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>3331</th>\n",
       "      <td>浙江-杭州-西湖区</td>\n",
       "      <td>杭州尤若教育咨询服务有限公司</td>\n",
       "      <td>不限/大学本科以上</td>\n",
       "      <td>/jobs_view_405661.html</td>\n",
       "      <td>3K-5K/月</td>\n",
       "      <td>高中英语助教老师</td>\n",
       "      <td>2019/04/03</td>\n",
       "      <td>中小学</td>\n",
       "      <td>浙江</td>\n",
       "      <td>杭州</td>\n",
       "      <td>经验不限</td>\n",
       "      <td>本科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5081</th>\n",
       "      <td>广东-汕尾-海丰县</td>\n",
       "      <td>海丰县德源文武学校</td>\n",
       "      <td>两年以上/大专</td>\n",
       "      <td>/jobs_view_30391.html</td>\n",
       "      <td>3.5K-5K/月</td>\n",
       "      <td>小学英语教师</td>\n",
       "      <td>2019/03/04</td>\n",
       "      <td>中小学</td>\n",
       "      <td>广东</td>\n",
       "      <td>汕尾</td>\n",
       "      <td>一到三年</td>\n",
       "      <td>大专</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>119</th>\n",
       "      <td>广东-东莞</td>\n",
       "      <td>上海交通大学昂立教育集团东莞分校</td>\n",
       "      <td>不限/大学本科以上</td>\n",
       "      <td>/jobs_view_398468.html</td>\n",
       "      <td>6K-10K/月</td>\n",
       "      <td>年薪10万优秀少儿英语老师（东莞市东城区）</td>\n",
       "      <td>2019/04/04</td>\n",
       "      <td>外语培训</td>\n",
       "      <td>广东</td>\n",
       "      <td>东莞</td>\n",
       "      <td>经验不限</td>\n",
       "      <td>本科</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>668</th>\n",
       "      <td>北京-顺义区</td>\n",
       "      <td>北京优翰文化传播有限公司</td>\n",
       "      <td>不限/不限</td>\n",
       "      <td>/jobs_view_427084.html</td>\n",
       "      <td>9W-16W/年</td>\n",
       "      <td>初中英语教师</td>\n",
       "      <td>2019/04/05</td>\n",
       "      <td>中小学</td>\n",
       "      <td>北京</td>\n",
       "      <td>北京</td>\n",
       "      <td>经验不限</td>\n",
       "      <td>学历不限</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4948</th>\n",
       "      <td>浙江-杭州-余杭区</td>\n",
       "      <td>杭州市余杭区信达外国语学校</td>\n",
       "      <td>不限/大学本科以上</td>\n",
       "      <td>/jobs_view_358561.html</td>\n",
       "      <td>17.5W-35W/年</td>\n",
       "      <td>初中英语老师</td>\n",
       "      <td>2019/03/15</td>\n",
       "      <td>中小学</td>\n",
       "      <td>浙江</td>\n",
       "      <td>杭州</td>\n",
       "      <td>经验不限</td>\n",
       "      <td>本科</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           area           company  exp_title                    link  \\\n",
       "3331  浙江-杭州-西湖区    杭州尤若教育咨询服务有限公司  不限/大学本科以上  /jobs_view_405661.html   \n",
       "5081  广东-汕尾-海丰县         海丰县德源文武学校    两年以上/大专   /jobs_view_30391.html   \n",
       "119       广东-东莞  上海交通大学昂立教育集团东莞分校  不限/大学本科以上  /jobs_view_398468.html   \n",
       "668      北京-顺义区      北京优翰文化传播有限公司      不限/不限  /jobs_view_427084.html   \n",
       "4948  浙江-杭州-余杭区     杭州市余杭区信达外国语学校  不限/大学本科以上  /jobs_view_358561.html   \n",
       "\n",
       "           salary                  title update_time  type province city  \\\n",
       "3331      3K-5K/月               高中英语助教老师  2019/04/03   中小学       浙江   杭州   \n",
       "5081    3.5K-5K/月                 小学英语教师  2019/03/04   中小学       广东   汕尾   \n",
       "119      6K-10K/月  年薪10万优秀少儿英语老师（东莞市东城区）  2019/04/04  外语培训       广东   东莞   \n",
       "668      9W-16W/年                 初中英语教师  2019/04/05   中小学       北京   北京   \n",
       "4948  17.5W-35W/年                 初中英语老师  2019/03/15   中小学       浙江   杭州   \n",
       "\n",
       "       exp degree  \n",
       "3331  经验不限     本科  \n",
       "5081  一到三年     大专  \n",
       "119   经验不限     本科  \n",
       "668   经验不限   学历不限  \n",
       "4948  经验不限     本科  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx.sample(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3. 清洗出工资"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['10W-12W/年', '3.5K-7K/月', '6K-10K/月', '8K-12K/月', '5K-10K/月',\n",
       "       '8K-15K/月', '5K-8K/月', '7K-10K/月', '8K-10K/月', '6K-8K/月',\n",
       "       '8W-12W/年', '5K-6K/月', '4K-6K/月', '9W-12W/年', '4.5K-6K/月',\n",
       "       '4K-8K/月', '8W-8W/年', '4K-5.5K/月', '3K-5K/月', '4.5K-8K/月',\n",
       "       '2.8K-3.5K/月', '6K-12K/月', '6W-9W/年', '10W-15W/年', '10K-15K/月',\n",
       "       '4K-7K/月', '3K-6K/月', '8W-8.5W/年', '6K-7.5K/月', '9K-18K/月',\n",
       "       '0.8W-1W/年', '2K-3K/月', '6W-12W/年', '7K-12K/月', '2.6K-5K/月',\n",
       "       '6W-8W/年', '5.5K-5.7K/月', '6.4K-8.4K/月', '3.5K-6K/月', '6.5W-10W/年',\n",
       "       '3.8K-5K/月', '8W-15W/年', '12K-22K/月', '10K-16K/月', '3.5K-8K/月',\n",
       "       '1.8K-4K/月', '3K-4K/月', '4W-8W/年', '5W-10W/年', '5K-7K/月',\n",
       "       '4.8W-8W/年', '2K-4K/月', '10K-14K/月', '3.5K-4.6K/月', '10W-20W/年',\n",
       "       '2.5K-3K/月', '4.5W-6.5W/年', '面议', '3.5K-4.5K/月', '8W-16W/年',\n",
       "       '4W-7W/年', '3K-4.5K/月', '4W-6W/年', '8K-16K/月', '9W-16W/年',\n",
       "       '7.5W-13W/年', '20K-28K/月', '7K-11K/月', '5W-6W/年', '13W-13W/年',\n",
       "       '3.5K-4K/月', '2K-2K/月', '9W-18W/年', '5.5K-6.5K/月', '4K-5K/月',\n",
       "       '13K-26K/月', '13K-25K/月', '10K-20K/月', '15K-20K/月', '3.5K-5K/月',\n",
       "       '17W-30W/年', '6.5K-6.5K/月', '15W-20W/年', '12W-15W/年', '6W-10W/年',\n",
       "       '12W-20W/年', '15W-18W/年', '10W-16W/年', '7W-14W/年', '7K-14K/月',\n",
       "       '12W-18W/年', '9W-15W/年', '4.5K-5.5K/月', '10W-13W/年', '5W-8W/年',\n",
       "       '12K-15K/月', '16W-20W/年', '6W-7W/年', '5W-6.5W/年', '15W-25W/年',\n",
       "       '2.2K-4.4K/月', '6.5K-8K/月', '7W-10W/年', '3W-6W/年', '13W-25W/年',\n",
       "       '13W-18W/年', '6K-9K/月', '9K-15K/月', '4.5K-8.5K/月', '6.5K-13K/月',\n",
       "       '5K-9K/月', '2.5K-4K/月', '7.5W-15W/年', '800-1200/月', '8W-13W/年',\n",
       "       '3K-10K/月', '5K-6.5K/月', '7W-12W/年', '9.5K-13K/月', '4W-7.8W/年',\n",
       "       '16W-16W/年', '20K-40K/月', '4.5K-9K/月', '1000-2000/月', '3.8K-6K/月',\n",
       "       '5K-5K/月', '7.5K-15K/月', '3.6K-6K/月', '5.5K-8K/月', '5.5K-7K/月',\n",
       "       '10K-18K/月', '12W-24W/年', '15W-30W/年', '25W-45W/年', '25W-50W/年',\n",
       "       '20W-40W/年', '8W-10W/年', '6K-11K/月', '1.2K-2.2K/月', '6.5K-12K/月',\n",
       "       '5K-7.5K/月', '11W-13W/年', '6.5K-10K/月', '5.8K-8K/月', '7K-8K/月',\n",
       "       '3.2K-4K/月', '4.5K-5K/月', '9K-11K/月', '4W-5W/年', '7K-9K/月',\n",
       "       '15K-30K/月', '2.5K-5K/月', '1.8K-2.5K/月', '3K-5.5K/月',\n",
       "       '2.5K-3.5K/月', '2.7K-4K/月', '14W-18W/年', '12.5K-25K/月', '7W-8W/年',\n",
       "       '8W-14W/年', '4K-4.5K/月', '5K-8.5K/月', '2K-3.5K/月', '11W-20W/年',\n",
       "       '6K-7K/月', '11W-18W/年', '3K-4.9K/月', '18W-25W/年', '20W-35W/年',\n",
       "       '20W-30W/年', '7W-9W/年', '18W-35W/年', '10W-18W/年', '6.4K-8K/月',\n",
       "       '7.8K-9K/月', '9K-13K/月', '5.5K-10K/月', '4.5W-5.4W/年', '18W-18W/年',\n",
       "       '18W-22W/年', '6K-6K/月', '8K-8K/月', '3.4K-4.5K/月', '9K-12K/月',\n",
       "       '25W-30W/年', '20K-30K/月', '8K-13K/月', '30W-50W/年', '9W-14W/年',\n",
       "       '35W-45W/年', '10K-12K/月', '6.5W-8W/年', '11W-15W/年', '5W-9W/年',\n",
       "       '79992-15996/月', '2.5K-4.5K/月', '14W-25W/年', '2.8K-5.5K/月',\n",
       "       '9.5W-12W/年', '13.5W-16W/年', '9W-10W/年', '36W-50W/年', '7W-8.5W/年',\n",
       "       '5W-7W/年', '4.5K-7K/月', '2K-8K/月', '8.5K-12K/月', '7.5K-10K/月',\n",
       "       '40W-50W/年', '15W-15W/年', '13K-17K/月', '30W-40W/年', '5.5W-10W/年',\n",
       "       '3.6K-7K/月', '5.5K-9K/月', '14W-20W/年', '13K-16K/月', '4.3K-5.5K/月',\n",
       "       '15W-22W/年', '3.5K-10K/月', '10K-10K/月', '7K-13K/月', '4.5K-6.5K/月',\n",
       "       '4K-10K/月', '5.5K-7.5K/月', '12.5K-15K/月', '1.2K-2.4K/月',\n",
       "       '12K-20K/月', '0.2W-0.4W/年', '7W-13W/年', '3.6K-4.2K/月',\n",
       "       '3.9K-4.5K/月', '4.8K-5.8K/月', '3K-3.5K/月', '2K-2.5K/月',\n",
       "       '12W-14W/年', '5K-5.5K/月', '3.5K-6.5K/月', '3.2K-4.5K/月',\n",
       "       '4.2K-8K/月', '9K-17K/月', '7K-7K/月', '13W-16.5W/年', '7.5K-9.8K/月',\n",
       "       '6.8K-9K/月', '4.7K-4.9K/月', '16W-25W/年', '12W-12W/年',\n",
       "       '3.8K-4.5K/月', '16W-30W/年', '8W-11W/年', '10K-13K/月', '14W-24W/年',\n",
       "       '4.8K-5.5K/月', '5.5K-6K/月', '20W-20W/年', '12W-16W/年', '15K-25K/月',\n",
       "       '26K-33K/月', '8.5W-15W/年', '15W-28W/年', '16.5W-23W/年', '5K-15K/月',\n",
       "       '7.5K-9K/月', '8K-11K/月', '5.5W-8W/年', '30W-35W/年', '3K-8K/月',\n",
       "       '25W-43W/年', '11W-22W/年', '0.6W-1.2W/年', '3.5K-4.2K/月',\n",
       "       '4.8K-6K/月', '4.2K-5.5K/月', '800-800/月', '9W-13W/年', '24W-30W/年',\n",
       "       '18W-24W/年', '4.2K-6K/月', '12.5W-25W/年', '18W-20W/年', '25W-35W/年',\n",
       "       '3.5K-5.5K/月', '20W-24W/年', '10.7W-18W/年', '12.7W-21W/年',\n",
       "       '15W-26W/年', '23W-45W/年', '4.3K-5.6K/月', '3.6K-4.5K/月',\n",
       "       '18W-36W/年', '17W-34W/年', '8.5K-10K/月', '4.5W-9W/年', '3.8K-7K/月',\n",
       "       '6K-20K/月', '11W-14W/年', '7K-8.5K/月', '9.5K-10K/月', '8.5W-17W/年',\n",
       "       '10.5W-20.5W/年', '6.5W-13W/年', '享公办教师薪资待遇', '6.5W-6.5W/年',\n",
       "       '10W-11W/年', '4.3K-5K/月', '8K-14K/月', '12W-22W/年', '20W-25W/年',\n",
       "       '2.6K-4K/月', '8W-9W/年', '70K-140K/月', '7K-7.5K/月', '2.8K-4.5K/月',\n",
       "       '7W-11W/年', '5W-5W/年', '8.5W-14W/年', '4K-6.5K/月', '5K-20K/月',\n",
       "       '3.7K-6K/月', '0.5W-1W/年', '17W-25W/年', '8K-14.5K/月', '4.5K-7.5K/月',\n",
       "       '4W-5.5W/年', '13W-26W/年', '22W-35W/年', '14W-28W/年', '15W-24W/年',\n",
       "       '9W-11W/年', '12W-17W/年', '2.8K-5.6K/月', '9K-16K/月', '13W-22W/年',\n",
       "       '800-1000/月', '1.5K-2K/月', '1.5K-2.5K/月', '15W-16W/年', '10W-14W/年',\n",
       "       '3.5K-6.9K/月', '12K-19K/月', '13W-17W/年', '14K-16K/月',\n",
       "       '100K-150K/月', '90K-130K/月', '80K-120K/月', '100K-130K/月',\n",
       "       '1.5K-3K/月', '11W-11W/年', '6.5W-12W/年', '3.5K-3.5K/月',\n",
       "       '80K-100K/月', '3.8K-7.5K/月', '13W-20W/年', '7W-7W/年', '6W-11W/年',\n",
       "       '4.2K-5K/月', '4.5W-8W/年', '3.8K-5.5K/月', '14W-16W/年', '8.5W-13W/年',\n",
       "       '1.5W-2.5W/年', '10K-12.5K/月', '4.5K-5.1K/月', '4.2K-4.5K/月',\n",
       "       '0.8W-1.2W/年', '0.65W-0.85W/年', '12K-18K/月', '7.5K-11K/月',\n",
       "       '6.5K-9K/月', '13W-15W/年', '2.5K-8K/月', '8K-9K/月', '13K-20K/月',\n",
       "       '7K-9.5K/月', '1.5K-1.8K/月', '3W-4W/年', '4K-15K/月', '3.5K-4.05K/月',\n",
       "       '14W-15W/年', '6K-6.5K/月', '3K-3K/月', '8K-30K/月', '2.9K-5K/月',\n",
       "       '6K-9.5K/月', '4.6K-5K/月', '10W-10W/年', '12.8W-20.8W/年',\n",
       "       '16W-18W/年', '22W-25W/年', '13W-16W/年', '2.6K-4.5K/月',\n",
       "       '2.6K-3.6K/月', '7.5K-12K/月', '12.7W-18W/年', '7.1K-9K/月',\n",
       "       '7.2W-12W/年', '3W-5W/年', '16K-18K/月', '14K-28K/月', '4.2K-7K/月',\n",
       "       '17.5W-35W/年', '6.5K-8.5K/月', '25K-41.67K/月', '25K-40K/月',\n",
       "       '2.7K-4.5K/月', '4.8W-9.6W/年', '3.7K-5K/月', '3.8W-5W/年',\n",
       "       '4.2K-5.2K/月', '3.5W-7W/年', '6.2W-11W/年', '5.2K-5.7K/月',\n",
       "       '3.8K-4.2K/月', '2.5W-6W/年', '3.8K-4K/月', '2.7K-3.5K/月',\n",
       "       '9.6W-12.6W/年'], dtype=object)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx['salary'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_salary(data):\n",
    "    pat_K = r\"(.*)K-(.*)K\"\n",
    "    pat_W = r\"(.*)W-(.*)W\"\n",
    "    pat = r\"(.*)-(.*)/\"\n",
    "    if '面议' in data:\n",
    "        return np.nan\n",
    "    if '享公办教师薪资待遇' in data:\n",
    "        return np.nan\n",
    "    if 'K' in data and '月' in data:\n",
    "        low, high = re.findall(pattern=pat_K, string=data)[0]\n",
    "        return (float(low)+float(high))/2\n",
    "    if 'W' in data and '年' in data:\n",
    "        low, high = re.findall(pattern=pat_W, string=data)[0]\n",
    "        return (float(low)+float(high))/2*10/12\n",
    "    if 'K' not in data and '月' in data:\n",
    "        low, high = re.findall(pattern=pat, string=data)[0]\n",
    "        return (float(low)+float(high))/2/1000\n",
    "\n",
    "data_wx['salary_clean'] = data_wx['salary'].apply(get_salary)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_wx['salary_clean'] = np.round(data_wx['salary_clean'], 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>company</th>\n",
       "      <th>exp_title</th>\n",
       "      <th>link</th>\n",
       "      <th>salary</th>\n",
       "      <th>title</th>\n",
       "      <th>update_time</th>\n",
       "      <th>type</th>\n",
       "      <th>province</th>\n",
       "      <th>city</th>\n",
       "      <th>exp</th>\n",
       "      <th>degree</th>\n",
       "      <th>salary_clean</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>4044</th>\n",
       "      <td>湖北-黄冈-红安县</td>\n",
       "      <td>湖北黄冈市红安国际育才实验学校</td>\n",
       "      <td>不限/大学本科以上</td>\n",
       "      <td>/jobs_view_427888.html</td>\n",
       "      <td>7K-12K/月</td>\n",
       "      <td>初中英语老师</td>\n",
       "      <td>2019/04/02</td>\n",
       "      <td>中小学</td>\n",
       "      <td>湖北</td>\n",
       "      <td>黄冈</td>\n",
       "      <td>经验不限</td>\n",
       "      <td>本科</td>\n",
       "      <td>9.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3947</th>\n",
       "      <td>山东-菏泽</td>\n",
       "      <td>菏泽国开实验学校</td>\n",
       "      <td>不限/大学本科以上</td>\n",
       "      <td>/jobs_view_418933.html</td>\n",
       "      <td>4K-8K/月</td>\n",
       "      <td>小学英语教师</td>\n",
       "      <td>2019/04/02</td>\n",
       "      <td>中小学</td>\n",
       "      <td>山东</td>\n",
       "      <td>菏泽</td>\n",
       "      <td>经验不限</td>\n",
       "      <td>本科</td>\n",
       "      <td>6.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2408</th>\n",
       "      <td>广东-深圳</td>\n",
       "      <td>深圳理化大师文化发展有限公司</td>\n",
       "      <td>不限/大专以上</td>\n",
       "      <td>/jobs_view_427570.html</td>\n",
       "      <td>6K-8K/月</td>\n",
       "      <td>初中英语老师</td>\n",
       "      <td>2019/04/04</td>\n",
       "      <td>中小学</td>\n",
       "      <td>广东</td>\n",
       "      <td>深圳</td>\n",
       "      <td>经验不限</td>\n",
       "      <td>大专</td>\n",
       "      <td>7.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5169</th>\n",
       "      <td>黑龙江-绥化-青冈县</td>\n",
       "      <td>青冈县剑桥英语学校</td>\n",
       "      <td>不限/不限</td>\n",
       "      <td>/jobs_view_95491.html</td>\n",
       "      <td>2.5K-4K/月</td>\n",
       "      <td>初中数学教师</td>\n",
       "      <td>2018/11/01</td>\n",
       "      <td>中小学</td>\n",
       "      <td>黑龙江</td>\n",
       "      <td>绥化</td>\n",
       "      <td>经验不限</td>\n",
       "      <td>学历不限</td>\n",
       "      <td>3.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1603</th>\n",
       "      <td>江苏-徐州-鼓楼区</td>\n",
       "      <td>徐州新东方学校</td>\n",
       "      <td>不限/大学本科以上</td>\n",
       "      <td>/jobs_view_384975.html</td>\n",
       "      <td>5K-8K/月</td>\n",
       "      <td>初中英语教师</td>\n",
       "      <td>2019/04/04</td>\n",
       "      <td>中小学</td>\n",
       "      <td>江苏</td>\n",
       "      <td>徐州</td>\n",
       "      <td>经验不限</td>\n",
       "      <td>本科</td>\n",
       "      <td>6.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            area          company  exp_title                    link  \\\n",
       "4044   湖北-黄冈-红安县  湖北黄冈市红安国际育才实验学校  不限/大学本科以上  /jobs_view_427888.html   \n",
       "3947       山东-菏泽         菏泽国开实验学校  不限/大学本科以上  /jobs_view_418933.html   \n",
       "2408       广东-深圳   深圳理化大师文化发展有限公司    不限/大专以上  /jobs_view_427570.html   \n",
       "5169  黑龙江-绥化-青冈县        青冈县剑桥英语学校      不限/不限   /jobs_view_95491.html   \n",
       "1603   江苏-徐州-鼓楼区          徐州新东方学校  不限/大学本科以上  /jobs_view_384975.html   \n",
       "\n",
       "         salary   title update_time type province city   exp degree  \\\n",
       "4044   7K-12K/月  初中英语老师  2019/04/02  中小学       湖北   黄冈  经验不限     本科   \n",
       "3947    4K-8K/月  小学英语教师  2019/04/02  中小学       山东   菏泽  经验不限     本科   \n",
       "2408    6K-8K/月  初中英语老师  2019/04/04  中小学       广东   深圳  经验不限     大专   \n",
       "5169  2.5K-4K/月  初中数学教师  2018/11/01  中小学      黑龙江   绥化  经验不限   学历不限   \n",
       "1603    5K-8K/月  初中英语教师  2019/04/04  中小学       江苏   徐州  经验不限     本科   \n",
       "\n",
       "      salary_clean  \n",
       "4044           9.5  \n",
       "3947           6.0  \n",
       "2408           7.0  \n",
       "5169           3.2  \n",
       "1603           6.5  "
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx.sample(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### JobLeadChina数据清洗\n",
    "- 清洗出“exp_title”\n",
    "- 清洗出“salary”"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 954 entries, 0 to 953\n",
      "Data columns (total 9 columns):\n",
      "area           954 non-null object\n",
      "com_type       954 non-null object\n",
      "company        954 non-null object\n",
      "education      954 non-null object\n",
      "exp_title      954 non-null object\n",
      "link           954 non-null object\n",
      "salary         954 non-null object\n",
      "title          954 non-null object\n",
      "update_time    954 non-null object\n",
      "dtypes: object(9)\n",
      "memory usage: 67.2+ KB\n"
     ]
    }
   ],
   "source": [
    "data_jlc.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>com_type</th>\n",
       "      <th>company</th>\n",
       "      <th>education</th>\n",
       "      <th>exp_title</th>\n",
       "      <th>link</th>\n",
       "      <th>salary</th>\n",
       "      <th>title</th>\n",
       "      <th>update_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>132</th>\n",
       "      <td>Hangzhou</td>\n",
       "      <td>School</td>\n",
       "      <td>Hailiang ECE</td>\n",
       "      <td>Bachelor</td>\n",
       "      <td>Experience: Associate</td>\n",
       "      <td>http://www.jobleadchina.com/job/3159</td>\n",
       "      <td>15K/MTH - 18K/MTH</td>\n",
       "      <td>Foreign Kindergarten Teacher</td>\n",
       "      <td>Post time: December 12, 2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81</th>\n",
       "      <td>Hangzhou</td>\n",
       "      <td>School</td>\n",
       "      <td>Hailiang ECE</td>\n",
       "      <td>Bachelor</td>\n",
       "      <td>Experience: Associate</td>\n",
       "      <td>http://www.jobleadchina.com/job/3321</td>\n",
       "      <td>15K/MTH - 18K/MTH</td>\n",
       "      <td>Foreign Kindergarten Teacher</td>\n",
       "      <td>Post time: January 30, 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>817</th>\n",
       "      <td>Beijing</td>\n",
       "      <td>Teaching Center</td>\n",
       "      <td>Wilshire Global Consulting</td>\n",
       "      <td>Bachelor</td>\n",
       "      <td>Experience: Associate</td>\n",
       "      <td>http://www.jobleadchina.com/job/483</td>\n",
       "      <td>12K/MTH - 18K/MTH</td>\n",
       "      <td>English Teacher</td>\n",
       "      <td>Post time: March 23, 2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Beijing</td>\n",
       "      <td>Teaching Center</td>\n",
       "      <td>Sara</td>\n",
       "      <td>Bachelor</td>\n",
       "      <td>Experience: Mid-Senior Level</td>\n",
       "      <td>http://www.jobleadchina.com/job/3935</td>\n",
       "      <td>8000K/MTH - 20000K/MTH</td>\n",
       "      <td>Native english teacher wanted in beijing ASAP</td>\n",
       "      <td>Post time: March 28, 2019</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>430</th>\n",
       "      <td>Beijing</td>\n",
       "      <td>School</td>\n",
       "      <td>Imagine Preschool</td>\n",
       "      <td>Bachelor</td>\n",
       "      <td>Experience: Associate</td>\n",
       "      <td>http://www.jobleadchina.com/job/1787</td>\n",
       "      <td>15K/MTH - 23K/MTH</td>\n",
       "      <td>English teachers for International schools</td>\n",
       "      <td>Post time: March 30, 2018</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         area         com_type                     company education  \\\n",
       "132  Hangzhou           School                Hailiang ECE  Bachelor   \n",
       "81   Hangzhou           School                Hailiang ECE  Bachelor   \n",
       "817   Beijing  Teaching Center  Wilshire Global Consulting  Bachelor   \n",
       "10    Beijing  Teaching Center                        Sara  Bachelor   \n",
       "430   Beijing           School           Imagine Preschool  Bachelor   \n",
       "\n",
       "                        exp_title                                  link  \\\n",
       "132         Experience: Associate  http://www.jobleadchina.com/job/3159   \n",
       "81          Experience: Associate  http://www.jobleadchina.com/job/3321   \n",
       "817         Experience: Associate   http://www.jobleadchina.com/job/483   \n",
       "10   Experience: Mid-Senior Level  http://www.jobleadchina.com/job/3935   \n",
       "430         Experience: Associate  http://www.jobleadchina.com/job/1787   \n",
       "\n",
       "                     salary                                          title  \\\n",
       "132       15K/MTH - 18K/MTH                   Foreign Kindergarten Teacher   \n",
       "81        15K/MTH - 18K/MTH                   Foreign Kindergarten Teacher   \n",
       "817       12K/MTH - 18K/MTH                                English Teacher   \n",
       "10   8000K/MTH - 20000K/MTH  Native english teacher wanted in beijing ASAP   \n",
       "430       15K/MTH - 23K/MTH     English teachers for International schools   \n",
       "\n",
       "                      update_time  \n",
       "132  Post time: December 12, 2018  \n",
       "81    Post time: January 30, 2019  \n",
       "817     Post time: March 23, 2017  \n",
       "10      Post time: March 28, 2019  \n",
       "430     Post time: March 30, 2018  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_jlc.sample(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 1. 清洗出exp_title"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Experience: Mid-Senior Level', 'Experience: Entry Level',\n",
       "       'Experience: Associate', 'Experience: Director',\n",
       "       'Experience: Executive', 'Experience: Internship'], dtype=object)"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_jlc['exp_title'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_jlc['exp_title_clean'] = data_jlc['exp_title'].str.split(\": \", expand=True)[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2. 清洗出salary"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['15000K/MTH - 20000K/MTH', '13K/MTH - 26K/MTH',\n",
       "       '13K/MTH - 18K/MTH', '10000K/MTH - 20000K/MTH',\n",
       "       '15K/MTH - 22K/MTH', '8000K/MTH - 20000K/MTH', '20K/MTH - 25K/MTH',\n",
       "       '16K/MTH - 23K/MTH', '8K/MTH - 14K/MTH', '15K/MTH - 18K/MTH',\n",
       "       '20000K/MTH - 30000K/MTH', '13K/MTH - 20K/MTH',\n",
       "       '11K/MTH - 16K/MTH', '20K/MTH - 28K/MTH', '6000K/MTH - 20000K/MTH',\n",
       "       '8K/MTH - 18K/MTH', '20K/MTH - 30K/MTH', '8000K/MTH - 18000K/MTH',\n",
       "       '12K/MTH - 16K/MTH', '13000K/MTH - 16000K/MTH',\n",
       "       '14K/MTH - 18K/MTH', '15K/MTH - 30K/MTH', '12K/MTH - 25K/MTH',\n",
       "       '8K/MTH - 20K/MTH', '13K/MTH - 25K/MTH', '13K/MTH - 16K/MTH',\n",
       "       '10K/MTH - 30K/MTH', '8K/MTH - 12K/MTH', '20K/MTH - 26K/MTH',\n",
       "       '26K/MTH - 28K/MTH', '13000K/MTH - 25000K/MTH',\n",
       "       '13000K/MTH - 15000K/MTH', '15K/MTH - 25K/MTH',\n",
       "       '12000K/MTH - 20000K/MTH', '18K/MTH - 25K/MTH',\n",
       "       '16000K/MTH - 19000K/MTH', '12K/MTH - 17K/MTH',\n",
       "       '15K/MTH - 17K/MTH', '7K/MTH - 18K/MTH', '20K/MTH - 40K/MTH',\n",
       "       '10K/MTH - 18K/MTH', '8000K/MTH - 17000K/MTH', '14K/MTH - 20K/MTH',\n",
       "       '0K/MTH - 0K/MTH', '6000K/MTH - 15000K/MTH', '10K/MTH - 13K/MTH',\n",
       "       '4K/MTH - 6K/MTH', '6000K/MTH - 12000K/MTH', '8K/MTH - 10K/MTH',\n",
       "       '18K/MTH - 22K/MTH', '6K/MTH - 18K/MTH', '0K/MTH - 10000K/MTH',\n",
       "       '12K/MTH - 15K/MTH', '16K/MTH - 20K/MTH', '15K/MTH - 20K/MTH',\n",
       "       '10K/MTH - 17K/MTH', '7000K/MTH - 15000K/MTH', '16K/MTH - 22K/MTH',\n",
       "       '8000K/MTH - 13000K/MTH', '15000K/MTH - 1800K/MTH',\n",
       "       '10K/MTH - 15K/MTH', '30K/MTH - 50K/MTH',\n",
       "       '15000K/MTH - 25000K/MTH', '25K/MTH - 30K/MTH',\n",
       "       '14K/MTH - 14K/MTH', '10K/MTH - 20K/MTH', '20K/MTH - 22K/MTH',\n",
       "       '25000K/MTH - 28000K/MTH', '16K/MTH - 25K/MTH', '5K/MTH - 15K/MTH',\n",
       "       '1K/MTH - 10K/MTH', '15000K/MTH - 21000K/MTH',\n",
       "       '18000K/MTH - 23000K/MTH', '6000K/MTH - 18000K/MTH',\n",
       "       '14K/MTH - 17K/MTH', '16000K/MTH - 20000K/MTH',\n",
       "       '16K/MTH - 24K/MTH', '18K/MTH - 24K/MTH',\n",
       "       '18000K/MTH - 24000K/MTH', '15K/MTH - 16K/MTH',\n",
       "       '18K/MTH - 23K/MTH', '1K/MTH - 2K/MTH', '18K/MTH - 18K/MTH',\n",
       "       '24K/MTH - 40K/MTH', '5K/MTH - 7K/MTH', '14K/MTH - 25K/MTH',\n",
       "       '14000K/MTH - 14000K/MTH', '14000K/MTH - 15500K/MTH',\n",
       "       '15000K/MTH - 18000K/MTH', '12000K/MTH - 24000K/MTH',\n",
       "       '12000K/MTH - 12000K/MTH', '12000K/MTH - 15000K/MTH',\n",
       "       '11000K/MTH - 14000K/MTH', '20000K/MTH - 25000K/MTH',\n",
       "       '10K/MTH - 11K/MTH', '14K/MTH - 16K/MTH',\n",
       "       '16000K/MTH - 25000K/MTH', '28K/MTH - 50K/MTH', '4K/MTH - 15K/MTH',\n",
       "       '14K/MTH - 15K/MTH', '8K/MTH - 26K/MTH', '12K/MTH - 20K/MTH',\n",
       "       '12K/MTH - 13K/MTH', '4800K/MTH - 9600K/MTH', '3K/MTH - 4K/MTH',\n",
       "       '12K/MTH - 14K/MTH', '12K/MTH - 18K/MTH', '18K/MTH - 20K/MTH',\n",
       "       '18K/MTH - 31K/MTH', '6K/MTH - 16K/MTH', '15000K/MTH - 22000K/MTH',\n",
       "       '10K/MTH - 16K/MTH', '1K/MTH - 3K/MTH', '30K/MTH - 31K/MTH',\n",
       "       '20K/MTH - 23K/MTH', '17K/MTH - 20K/MTH', '17K/MTH - 30K/MTH',\n",
       "       '11K/MTH - 20K/MTH', '15K/MTH - 23K/MTH', '0K/MTH - 1K/MTH',\n",
       "       '16K/MTH - 18K/MTH', '0K/MTH - 30K/MTH', '0K/MTH - 30000K/MTH',\n",
       "       '3K/MTH - 18K/MTH', '18000K/MTH - 22000K/MTH', '14K/MTH - 22K/MTH',\n",
       "       '8000K/MTH - 15000K/MTH', '13K/MTH - 14K/MTH', '6K/MTH - 9K/MTH',\n",
       "       '13000K/MTH - 20000K/MTH', '6K/MTH - 20K/MTH', '17K/MTH - 21K/MTH',\n",
       "       '10K/MTH - 12K/MTH', '12000K/MTH - 18000K/MTH',\n",
       "       '10K/MTH - 10K/MTH', '16K/MTH - 17K/MTH', '20K/MTH - 21K/MTH',\n",
       "       '8000K/MTH - 16000K/MTH', '1000K/MTH - 2000K/MTH',\n",
       "       '6K/MTH - 26K/MTH', '0K/MTH - 15000K/MTH', '2K/MTH - 18K/MTH',\n",
       "       '14000K/MTH - 20000K/MTH', '5K/MTH - 10K/MTH', '5K/MTH - 12K/MTH',\n",
       "       '4K/MTH - 12K/MTH', '13K/MTH - 30K/MTH', '15K/MTH - 19K/MTH',\n",
       "       '11K/MTH - 13K/MTH', '13K/MTH - 15K/MTH', '7000K/MTH - 13000K/MTH',\n",
       "       '3000K/MTH - 10000K/MTH', '13K/MTH - 17K/MTH', '6K/MTH - 14K/MTH',\n",
       "       '17K/MTH - 19K/MTH', '500K/MTH - 1500K/MTH', '18K/MTH - 35K/MTH',\n",
       "       '30K/MTH - 35K/MTH', '15K/MTH - 21K/MTH',\n",
       "       '13000K/MTH - 19000K/MTH', '6K/MTH - 10K/MTH', '9K/MTH - 20K/MTH',\n",
       "       '15K/MTH - 50K/MTH', '10K/MTH - 25K/MTH', '2K/MTH - 10K/MTH',\n",
       "       '0K/MTH - 4K/MTH', '8K/MTH - 16K/MTH', '8K/MTH - 15K/MTH',\n",
       "       '1K/MTH - 5K/MTH', '16K/MTH - 16K/MTH', '9000K/MTH - 12000K/MTH',\n",
       "       '13000K/MTH - 17000K/MTH', '10000K/MTH - 17000K/MTH',\n",
       "       '14000K/MTH - 25000K/MTH', '12000K/MTH - 19000K/MTH',\n",
       "       '17K/MTH - 22K/MTH', '7K/MTH - 20K/MTH', '1000K/MTH - 3000K/MTH',\n",
       "       '2500K/MTH - 5000K/MTH', '400K/MTH - 10000K/MTH',\n",
       "       '2000K/MTH - 5000K/MTH', '11000K/MTH - 16000K/MTH',\n",
       "       '6K/MTH - 12K/MTH', '12000K/MTH - 16000K/MTH',\n",
       "       '1000K/MTH - 20000K/MTH', '7K/MTH - 8K/MTH',\n",
       "       '10000K/MTH - 16000K/MTH', '3K/MTH - 5K/MTH', '7K/MTH - 12K/MTH',\n",
       "       '5000K/MTH - 20000K/MTH', '12K/MTH - 19K/MTH',\n",
       "       '4000K/MTH - 6000K/MTH', '14000K/MTH - 22000K/MTH',\n",
       "       '9600K/MTH - 10600K/MTH', '9600K/MTH - 10200K/MTH',\n",
       "       '18000K/MTH - 20000K/MTH', '7K/MTH - 15K/MTH', '3K/MTH - 8K/MTH',\n",
       "       '0K/MTH - 10K/MTH', '3000K/MTH - 18000K/MTH',\n",
       "       '9000K/MTH - 15000K/MTH', '2K/MTH - 20K/MTH', '8K/MTH - 13K/MTH',\n",
       "       '9K/MTH - 15K/MTH', '3K/MTH - 12K/MTH', '7K/MTH - 9K/MTH',\n",
       "       '4K/MTH - 7K/MTH', '8K/MTH - 30K/MTH', '15K/MTH - 40K/MTH',\n",
       "       '10K/MTH - 14K/MTH', '7K/MTH - 10K/MTH', '9K/MTH - 12K/MTH',\n",
       "       '11K/MTH - 30K/MTH', '6K/MTH - 8K/MTH', '12K/MTH - 30K/MTH',\n",
       "       '5K/MTH - 8K/MTH', '1K/MTH - 15K/MTH', '3K/MTH - 9K/MTH',\n",
       "       '3K/MTH - 6K/MTH', '15K/MTH - 35K/MTH', '6K/MTH - 30K/MTH',\n",
       "       '9K/MTH - 14K/MTH', '18K/MTH - 21K/MTH'], dtype=object)"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_jlc['salary'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_salary_jlc(data):\n",
    "    pat_jlc = r\"(.*)K/MTH - (.*)K/MTH\"\n",
    "    if '00' in data:\n",
    "        low, high = re.findall(pattern=pat_jlc, string=data)[0]\n",
    "        return (float(low)+float(high))/2/1000\n",
    "    else:\n",
    "        low, high = re.findall(pattern=pat_jlc, string=data)[0]\n",
    "        return (float(low)+float(high))/2\n",
    "\n",
    "data_jlc['salary_clean'] = data_jlc['salary'].apply(get_salary_jlc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>area</th>\n",
       "      <th>com_type</th>\n",
       "      <th>company</th>\n",
       "      <th>education</th>\n",
       "      <th>exp_title</th>\n",
       "      <th>link</th>\n",
       "      <th>salary</th>\n",
       "      <th>title</th>\n",
       "      <th>update_time</th>\n",
       "      <th>exp_title_clean</th>\n",
       "      <th>salary_clean</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>Hangzhou</td>\n",
       "      <td>School</td>\n",
       "      <td>Hailiang ECE</td>\n",
       "      <td>Bachelor</td>\n",
       "      <td>Experience: Associate</td>\n",
       "      <td>http://www.jobleadchina.com/job/3859</td>\n",
       "      <td>15K/MTH - 18K/MTH</td>\n",
       "      <td>Foreign Kindergarten Teacher</td>\n",
       "      <td>Post time: March 15, 2019</td>\n",
       "      <td>Associate</td>\n",
       "      <td>16.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>525</th>\n",
       "      <td>Others</td>\n",
       "      <td>Teaching Center</td>\n",
       "      <td>Meten likeshuo English</td>\n",
       "      <td>Bachelor</td>\n",
       "      <td>Experience: Internship</td>\n",
       "      <td>http://www.jobleadchina.com/job/1349</td>\n",
       "      <td>0K/MTH - 0K/MTH</td>\n",
       "      <td>Hiring Homebased Online Tutors</td>\n",
       "      <td>Post time: November 06, 2017</td>\n",
       "      <td>Internship</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>501</th>\n",
       "      <td>Hangzhou</td>\n",
       "      <td>Teaching Center</td>\n",
       "      <td>Wanin Education</td>\n",
       "      <td>Any education</td>\n",
       "      <td>Experience: Entry Level</td>\n",
       "      <td>http://www.jobleadchina.com/job/1453</td>\n",
       "      <td>4K/MTH - 12K/MTH</td>\n",
       "      <td>English Teacher full time/part time</td>\n",
       "      <td>Post time: December 04, 2017</td>\n",
       "      <td>Entry Level</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>929</th>\n",
       "      <td>Shenzhen</td>\n",
       "      <td>Teaching Center</td>\n",
       "      <td>I2 国际私塾</td>\n",
       "      <td>Bachelor</td>\n",
       "      <td>Experience: Executive</td>\n",
       "      <td>http://www.jobleadchina.com/job/142</td>\n",
       "      <td>18K/MTH - 21K/MTH</td>\n",
       "      <td>ESL teacher needed in Shenzhen i2</td>\n",
       "      <td>Post time: October 24, 2016</td>\n",
       "      <td>Executive</td>\n",
       "      <td>19.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>183</th>\n",
       "      <td>Shanghai</td>\n",
       "      <td>Others</td>\n",
       "      <td>Dongsheng New Material</td>\n",
       "      <td>Any education</td>\n",
       "      <td>Experience: Associate</td>\n",
       "      <td>http://www.jobleadchina.com/job/2800</td>\n",
       "      <td>8000K/MTH - 13000K/MTH</td>\n",
       "      <td>English Teacher for Adult and Children</td>\n",
       "      <td>Post time: October 17, 2018</td>\n",
       "      <td>Associate</td>\n",
       "      <td>10.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         area         com_type                 company      education  \\\n",
       "26   Hangzhou           School            Hailiang ECE       Bachelor   \n",
       "525    Others  Teaching Center  Meten likeshuo English       Bachelor   \n",
       "501  Hangzhou  Teaching Center         Wanin Education  Any education   \n",
       "929  Shenzhen  Teaching Center                 I2 国际私塾       Bachelor   \n",
       "183  Shanghai           Others  Dongsheng New Material  Any education   \n",
       "\n",
       "                   exp_title                                  link  \\\n",
       "26     Experience: Associate  http://www.jobleadchina.com/job/3859   \n",
       "525   Experience: Internship  http://www.jobleadchina.com/job/1349   \n",
       "501  Experience: Entry Level  http://www.jobleadchina.com/job/1453   \n",
       "929    Experience: Executive   http://www.jobleadchina.com/job/142   \n",
       "183    Experience: Associate  http://www.jobleadchina.com/job/2800   \n",
       "\n",
       "                     salary                                   title  \\\n",
       "26        15K/MTH - 18K/MTH            Foreign Kindergarten Teacher   \n",
       "525         0K/MTH - 0K/MTH          Hiring Homebased Online Tutors   \n",
       "501        4K/MTH - 12K/MTH     English Teacher full time/part time   \n",
       "929       18K/MTH - 21K/MTH       ESL teacher needed in Shenzhen i2   \n",
       "183  8000K/MTH - 13000K/MTH  English Teacher for Adult and Children   \n",
       "\n",
       "                      update_time exp_title_clean  salary_clean  \n",
       "26      Post time: March 15, 2019       Associate          16.5  \n",
       "525  Post time: November 06, 2017      Internship           0.0  \n",
       "501  Post time: December 04, 2017     Entry Level           8.0  \n",
       "929   Post time: October 24, 2016       Executive          19.5  \n",
       "183   Post time: October 17, 2018       Associate          10.5  "
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_jlc.sample(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 微信群成员数据清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 498 entries, 0 to 497\n",
      "Data columns (total 31 columns):\n",
      "Alias               0 non-null float64\n",
      "AppAccountFlag      498 non-null int64\n",
      "AttrStatus          498 non-null int64\n",
      "ChatRoomId          498 non-null int64\n",
      "City                282 non-null object\n",
      "ContactFlag         498 non-null int64\n",
      "DisplayName         408 non-null object\n",
      "EncryChatRoomId     498 non-null object\n",
      "HeadImgUrl          498 non-null object\n",
      "HideInputBarFlag    498 non-null int64\n",
      "IsOwner             498 non-null int64\n",
      "KeyWord             53 non-null object\n",
      "MemberCount         498 non-null int64\n",
      "MemberList          498 non-null object\n",
      "NickName            498 non-null object\n",
      "OwnerUin            498 non-null int64\n",
      "PYInitial           495 non-null object\n",
      "PYQuanPin           495 non-null object\n",
      "Province            358 non-null object\n",
      "RemarkName          0 non-null float64\n",
      "RemarkPYInitial     0 non-null float64\n",
      "RemarkPYQuanPin     0 non-null float64\n",
      "Sex                 498 non-null int64\n",
      "Signature           273 non-null object\n",
      "SnsFlag             498 non-null int64\n",
      "StarFriend          498 non-null int64\n",
      "Statues             498 non-null int64\n",
      "Uin                 498 non-null int64\n",
      "UniFriend           498 non-null int64\n",
      "UserName            498 non-null object\n",
      "VerifyFlag          498 non-null int64\n",
      "dtypes: float64(4), int64(15), object(12)\n",
      "memory usage: 120.7+ KB\n"
     ]
    }
   ],
   "source": [
    "data_gm.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Alias</th>\n",
       "      <th>AppAccountFlag</th>\n",
       "      <th>AttrStatus</th>\n",
       "      <th>ChatRoomId</th>\n",
       "      <th>City</th>\n",
       "      <th>ContactFlag</th>\n",
       "      <th>DisplayName</th>\n",
       "      <th>EncryChatRoomId</th>\n",
       "      <th>HeadImgUrl</th>\n",
       "      <th>HideInputBarFlag</th>\n",
       "      <th>...</th>\n",
       "      <th>RemarkPYQuanPin</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Signature</th>\n",
       "      <th>SnsFlag</th>\n",
       "      <th>StarFriend</th>\n",
       "      <th>Statues</th>\n",
       "      <th>Uin</th>\n",
       "      <th>UniFriend</th>\n",
       "      <th>UserName</th>\n",
       "      <th>VerifyFlag</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>34050853</td>\n",
       "      <td>0</td>\n",
       "      <td>滨海新区</td>\n",
       "      <td>0</td>\n",
       "      <td>19 Leigh🌹</td>\n",
       "      <td>@dd5b72bfc42dc034fb6c8b08740639a9</td>\n",
       "      <td>/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&amp;userna...</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2</td>\n",
       "      <td>Faith is seeing God in the Dark and in the Lig...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>@ccf6c688a76644a317927ed5eaae67c6d438daef4f1a0...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>415</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>102437</td>\n",
       "      <td>0</td>\n",
       "      <td>和平</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>@dd5b72bfc42dc034fb6c8b08740639a9</td>\n",
       "      <td>/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&amp;userna...</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>@84cfa0da4143c62045fcf967a2779764539b0f84352cf...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>422</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>4296805</td>\n",
       "      <td>0</td>\n",
       "      <td>荆州</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>@dd5b72bfc42dc034fb6c8b08740639a9</td>\n",
       "      <td>/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&amp;userna...</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2</td>\n",
       "      <td>Persistence and Determination</td>\n",
       "      <td>17</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>@9f0b39d7fb526bfdff26afb3b0c7474ac35ab57c5a6f7...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>100903</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>19' Youthquake</td>\n",
       "      <td>@dd5b72bfc42dc034fb6c8b08740639a9</td>\n",
       "      <td>/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&amp;userna...</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>放开想象 行动行动再行动 战斗战斗再战斗!</td>\n",
       "      <td>49</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>@b067c8975d5328a928b7342689c9d75eb958398282d55...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>292</th>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>102437</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>19’ Sofia Shu</td>\n",
       "      <td>@dd5b72bfc42dc034fb6c8b08740639a9</td>\n",
       "      <td>/cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&amp;userna...</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>@b1b07112e77ac3c7af72dbf960cb93f0d67bb2f9c27dd...</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 31 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Alias  AppAccountFlag  AttrStatus  ChatRoomId  City  ContactFlag  \\\n",
       "80     NaN               0    34050853           0  滨海新区            0   \n",
       "415    NaN               0      102437           0    和平            0   \n",
       "422    NaN               0     4296805           0    荆州            0   \n",
       "96     NaN               0      100903           0   NaN            0   \n",
       "292    NaN               0      102437           0   NaN            0   \n",
       "\n",
       "        DisplayName                    EncryChatRoomId  \\\n",
       "80        19 Leigh🌹  @dd5b72bfc42dc034fb6c8b08740639a9   \n",
       "415             NaN  @dd5b72bfc42dc034fb6c8b08740639a9   \n",
       "422             NaN  @dd5b72bfc42dc034fb6c8b08740639a9   \n",
       "96   19' Youthquake  @dd5b72bfc42dc034fb6c8b08740639a9   \n",
       "292   19’ Sofia Shu  @dd5b72bfc42dc034fb6c8b08740639a9   \n",
       "\n",
       "                                            HeadImgUrl  HideInputBarFlag  \\\n",
       "80   /cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&userna...                 0   \n",
       "415  /cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&userna...                 0   \n",
       "422  /cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&userna...                 0   \n",
       "96   /cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&userna...                 0   \n",
       "292  /cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&userna...                 0   \n",
       "\n",
       "        ...      RemarkPYQuanPin Sex  \\\n",
       "80      ...                  NaN   2   \n",
       "415     ...                  NaN   1   \n",
       "422     ...                  NaN   2   \n",
       "96      ...                  NaN   1   \n",
       "292     ...                  NaN   0   \n",
       "\n",
       "                                             Signature SnsFlag StarFriend  \\\n",
       "80   Faith is seeing God in the Dark and in the Lig...       1          0   \n",
       "415                                                NaN       1          0   \n",
       "422                     Persistence and Determination       17          0   \n",
       "96                               放开想象 行动行动再行动 战斗战斗再战斗!      49          0   \n",
       "292                                                NaN       0          0   \n",
       "\n",
       "     Statues Uin UniFriend                                           UserName  \\\n",
       "80         0   0         0  @ccf6c688a76644a317927ed5eaae67c6d438daef4f1a0...   \n",
       "415        0   0         0  @84cfa0da4143c62045fcf967a2779764539b0f84352cf...   \n",
       "422        0   0         0  @9f0b39d7fb526bfdff26afb3b0c7474ac35ab57c5a6f7...   \n",
       "96         0   0         0  @b067c8975d5328a928b7342689c9d75eb958398282d55...   \n",
       "292        0   0         0  @b1b07112e77ac3c7af72dbf960cb93f0d67bb2f9c27dd...   \n",
       "\n",
       "     VerifyFlag  \n",
       "80            0  \n",
       "415           0  \n",
       "422           0  \n",
       "96            0  \n",
       "292           0  \n",
       "\n",
       "[5 rows x 31 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_gm.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Alias                                                             NaN\n",
       "AppAccountFlag                                                      0\n",
       "AttrStatus                                                   33656869\n",
       "ChatRoomId                                                          0\n",
       "City                                                               昌平\n",
       "ContactFlag                                                         0\n",
       "DisplayName                                                   19 Marc\n",
       "EncryChatRoomId                     @dd5b72bfc42dc034fb6c8b08740639a9\n",
       "HeadImgUrl          /cgi-bin/mmwebwx-bin/webwxgeticon?seq=0&userna...\n",
       "HideInputBarFlag                                                    0\n",
       "IsOwner                                                             0\n",
       "KeyWord                                                           NaN\n",
       "MemberCount                                                         0\n",
       "MemberList                                                         []\n",
       "NickName                                                         Marc\n",
       "OwnerUin                                                            0\n",
       "PYInitial                                                        MARC\n",
       "PYQuanPin                                                        Marc\n",
       "Province                                                           北京\n",
       "RemarkName                                                        NaN\n",
       "RemarkPYInitial                                                   NaN\n",
       "RemarkPYQuanPin                                                   NaN\n",
       "Sex                                                                 1\n",
       "Signature                                               I‘m prophetic\n",
       "SnsFlag                                                             1\n",
       "StarFriend                                                          0\n",
       "Statues                                                             0\n",
       "Uin                                                                 0\n",
       "UniFriend                                                           0\n",
       "UserName            @26e82b8563529518bbaa47040fb4c83585bfa2e96665b...\n",
       "VerifyFlag                                                          0\n",
       "Name: 99, dtype: object"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_gm.iloc[99]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_gm = data_gm[['NickName', 'City', 'Province', 'Sex', 'Signature']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_gm.to_csv(\"data_gm.csv\", index=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 问题：\n",
    "1. 洋外教的工资真的高吗？\n",
    "2. 市场对于洋外教的经验和学历要求如何？\n",
    "3. 哪些地区对洋外教的需求多？\n",
    "4. 什么机构在招聘洋外教？\n",
    "5. 洋外教来源真的很乱吗？"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. 洋外教的工资真的高吗？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 371,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 954 entries, 0 to 953\n",
      "Data columns (total 12 columns):\n",
      "area               954 non-null object\n",
      "com_type           954 non-null object\n",
      "company            954 non-null object\n",
      "education          954 non-null object\n",
      "exp_title          954 non-null object\n",
      "link               954 non-null object\n",
      "salary             954 non-null object\n",
      "title              954 non-null object\n",
      "update_time        954 non-null object\n",
      "exp_title_clean    954 non-null object\n",
      "salary_clean       954 non-null float64\n",
      "teacher_type       954 non-null object\n",
      "dtypes: float64(1), object(11)\n",
      "memory usage: 89.5+ KB\n"
     ]
    }
   ],
   "source": [
    "data_jlc.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 372,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 5780 entries, 0 to 27\n",
      "Data columns (total 14 columns):\n",
      "area            5780 non-null object\n",
      "company         5780 non-null object\n",
      "exp_title       5780 non-null object\n",
      "link            5780 non-null object\n",
      "salary          5780 non-null object\n",
      "title           5780 non-null object\n",
      "update_time     5780 non-null object\n",
      "type            5780 non-null object\n",
      "province        5780 non-null object\n",
      "city            5769 non-null object\n",
      "exp             5780 non-null object\n",
      "degree          5780 non-null object\n",
      "salary_clean    5687 non-null float64\n",
      "teacher_type    5780 non-null object\n",
      "dtypes: float64(1), object(13)\n",
      "memory usage: 677.3+ KB\n"
     ]
    }
   ],
   "source": [
    "data_wx.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_wx.drop(data_wx[data_wx['salary_clean']>40].index, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_wx['teacher_type'] = '中教'\n",
    "data_jlc['teacher_type'] = '外教'\n",
    "data_salary = pd.concat([data_wx[['salary_clean', 'teacher_type']],\n",
    "                        data_jlc[['salary_clean', 'teacher_type']]])\n",
    "data_salary.rename(columns={'salary_clean':'工资', 'teacher_type':'教师类型'}, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/seaborn/axisgrid.py:230: UserWarning: The `size` paramter has been renamed to `height`; please update your code.\n",
      "  warnings.warn(msg, UserWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x11f9f2da0>"
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nP1Or1XjyyScRExODvLw8aDQa3HXXXZg4cWKnN72qqir84he/QGZmJqqrq/Gzn/0Mf/7znzsN+X3u\nuecAAOvXr8fp06fxxBNPAMBVHyrX2tqKe++9F+PHj8e8efN6rGdraysee+wxXHvttVi/fj0WLlyI\npUuX4uWXX3bduuhOUlISjh8/3mX5G2+8gU8//RQffPBBj8cdjPryNSUaigJvfmiiIWjevHmYMmWK\nq+lfr9e7bqdYrVb85S9/wR133IGRI0eisLAQmzdvxoULFzBnzhysX78eJpPJVdaePXtQUFCA66+/\n3jVsdfz48Xjttddct1Uud5ZNSUnB4cOH8dZbb101YIiiiB07duDHP/4xLBYL/vSnP0Gn0+Gvf/0r\n5HI5brvtNvzlL39BS0tLf16igOBwOK7aCvV9ffmaEg01bDkhCiDvv/8+fvvb3yI8PBwzZsxAdXU1\nfvzjH0OpVGLlypW45557XNOgv/fee3juueewbds23HfffRBFEW+++SYKCgqQkZGBP/zhD65yExMT\nO41+udw3BEC3z4qpqanBgQMHUFJSgs8++wwtLS2477778MQTT0Cr1QIAoqKisHHjRmzYsAGvvvoq\n/vjHP+LGG2/EzJkzXZOIlZWVQZKkbjvlNjU1wWazdepzctnl58tkZGS4jhcIbDab15PF+fKaEg1V\ngtQXA/qJqE80Njbi5MmTGDdunOtNedeuXZg8eTI0Gk23+7S1tUGn08Fms+F3v/sdjh8/jnXr1vXY\nGXbRokVQKpVYv359t+v379+Pn/70p8jIyMC8efNwzz339HjrpqGhAX/729+wdetW/OQnP3ENG/7R\nj36EyspKj+ZZudLleVDeffdd18ifQDBjxgxkZmbizTff9HgfX15ToqGK4YQoyNjt9k6jYnqrsbGx\ny3T07jidTjgcjj45PhENXQwnREREFFDYIZaIiIgCCsMJERERBZSgGq3T2GiE08m7VL0VFaWFwcDh\ni77gNfQdr6HveA19x2vou7i43nfqZssJuSgU3o2ooK54DX3Ha+g7XkPf8Rr6F8MJERERBRSGEyIi\nIgooDCdEREQUUBhOiIiIKKB4FE6cTicKCgowffp0zJw5E5s2bfLqIH/9619xww03IDc3F7feeit2\n7drVaX11dTUWL16McePG4e6778apU6e8Kp+IiIiCh0fhZO3atdiwYQMeeughrF69Gn/+85+xfft2\n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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11e26a240>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# sns.set(font_scale=1.5)\n",
    "g = sns.FacetGrid(data_salary, row=\"教师类型\", size=4, aspect=2, xlim=(0,30))\n",
    "g.map(sns.distplot, \"工资\", rug=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "15.7"
      ]
     },
     "execution_count": 138,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.round(data_jlc['salary_clean'].mean(), 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8.3"
      ]
     },
     "execution_count": 139,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.round(data_wx['salary_clean'].mean(), 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 362,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.929763476810974"
      ]
     },
     "execution_count": 362,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_wx.groupby('city')['salary_clean'].mean().mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 374,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "city\n",
       "绥化         3.0\n",
       "焦作         3.5\n",
       "信阳         3.8\n",
       "琼海市        3.8\n",
       "通化         3.8\n",
       "贵港         3.9\n",
       "临高县        4.0\n",
       "漯河         4.0\n",
       "乐东黎族自治县    4.2\n",
       "武威         4.3\n",
       "Name: salary_clean, dtype: float64"
      ]
     },
     "execution_count": 374,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.round(data_wx.groupby('city')['salary_clean'].mean().sort_values()[:10], 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 通过经验进行对比\n",
    "data_jlc.loc[data_jlc['exp_title_clean']=='Associate', 'exp_title_clean'] = 'Entry Level'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "exp_title_clean\n",
       "Director            20.9\n",
       "Entry Level         15.8\n",
       "Executive           14.0\n",
       "Internship          10.1\n",
       "Mid-Senior Level    15.8\n",
       "Name: salary_clean, dtype: float64"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.round(data_jlc.groupby('exp_title_clean')['salary_clean'].mean(), 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "exp\n",
       "一到三年     8.0\n",
       "三到五年    10.1\n",
       "五到十年    13.6\n",
       "十年以上    21.6\n",
       "经验不限     7.8\n",
       "Name: salary_clean, dtype: float64"
      ]
     },
     "execution_count": 142,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.round(data_wx.groupby('exp')['salary_clean'].mean(), 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "'经验不限',     '一到三年',                '三到五年',    '五到十年',           '十年以上'\n",
    "'Internship', 'Entry Level'+'Associate', 'Executive', 'Mid-Senior Level', 'Director'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"aba063d6526c450daa11ea08fdb86d1b\" style=\"width:700px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_aba063d6526c450daa11ea08fdb86d1b = echarts.init(document.getElementById('aba063d6526c450daa11ea08fdb86d1b'), null, {renderer: 'canvas'});\n",
       "var option_aba063d6526c450daa11ea08fdb86d1b = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u4e0d\\u540c\\u5de5\\u4f5c\\u7ecf\\u9a8c\\u7684\\u82f1\\u8bed\\u5916\\u6559\\u4e0e\\u4e2d\\u6559\\u5de5\\u8d44\\u5bf9\\u6bd4\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 2125960,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u5916\\u6559\",\n",
       "            \"data\": [\n",
       "                10.1,\n",
       "                15.8,\n",
       "                14.0,\n",
       "                15.8,\n",
       "                20.9\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 2125960\n",
       "        },\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u4e2d\\u6559\",\n",
       "            \"data\": [\n",
       "                7.8,\n",
       "                8.0,\n",
       "                10.1,\n",
       "                13.6,\n",
       "                21.6\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 2125960\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u5916\\u6559\",\n",
       "                \"\\u4e2d\\u6559\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": 30,\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 18,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u7ecf\\u9a8c\\u4e0d\\u9650\\nInternship\",\n",
       "                \"\\u4e00\\u5230\\u4e09\\u5e74\\nEntry Level\",\n",
       "                \"\\u4e09\\u5230\\u4e94\\u5e74\\nExecutive\",\n",
       "                \"\\u4e94\\u5230\\u5341\\u5e74\\nMid-Senior\",\n",
       "                \"\\u5341\\u5e74\\u4ee5\\u4e0a\\nDirector\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_aba063d6526c450daa11ea08fdb86d1b.setOption(option_aba063d6526c450daa11ea08fdb86d1b);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11d695f28>"
      ]
     },
     "execution_count": 186,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts import Bar\n",
    "\n",
    "\n",
    "attr = ['经验不限\\nInternship', '一到三年\\nEntry Level', '三到五年\\nExecutive',\n",
    "        '五到十年\\nMid-Senior', '十年以上\\nDirector']\n",
    "value1 = [10.1, 15.8, 14.0, 15.8, 20.9]\n",
    "value2 = [7.8, 8.0, 10.1, 13.6, 21.6]\n",
    "\n",
    "bar = Bar(\"不同工作经验的英语外教与中教工资对比\", width = 700,height=500)\n",
    "bar.add(\"外教\", attr, value1, xaxis_label_textsize=18, legend_top=30,\n",
    "        yaxis_label_textsize=20, is_label_show=True)\n",
    "bar.add(\"中教\", attr, value2, xaxis_label_textsize=18, legend_top=30,\n",
    "        yaxis_label_textsize=20, is_label_show=True)\n",
    "bar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "education\n",
       "Any education    13.9\n",
       "Associate        12.8\n",
       "Bachelor         16.3\n",
       "Master           21.3\n",
       "Name: salary_clean, dtype: float64"
      ]
     },
     "execution_count": 165,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通过学历进行对比\n",
    "np.round(data_jlc.groupby('education')['salary_clean'].mean(),1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_wx.loc[data_wx['degree']=='中专', 'degree'] = '高中'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "degree\n",
       "大专       6.4\n",
       "学历不限     7.5\n",
       "本科       9.2\n",
       "硕士      11.0\n",
       "高中       4.4\n",
       "Name: salary_clean, dtype: float64"
      ]
     },
     "execution_count": 170,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.round(data_wx.groupby('degree')['salary_clean'].mean(),1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 352,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"e091b5f9e6bf40999cb66e802e330ea1\" style=\"width:700px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_e091b5f9e6bf40999cb66e802e330ea1 = echarts.init(document.getElementById('e091b5f9e6bf40999cb66e802e330ea1'), null, {renderer: 'canvas'});\n",
       "var option_e091b5f9e6bf40999cb66e802e330ea1 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u4e0d\\u540c\\u5b66\\u5386\\u7684\\u82f1\\u8bed\\u5916\\u6559\\u4e0e\\u4e2d\\u6559\\u5de5\\u8d44\\u5bf9\\u6bd4\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 8301276,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u5916\\u6559\",\n",
       "            \"data\": [\n",
       "                13.9,\n",
       "                NaN,\n",
       "                12.8,\n",
       "                16.3,\n",
       "                21.3\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 8301276\n",
       "        },\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u4e2d\\u6559\",\n",
       "            \"data\": [\n",
       "                7.5,\n",
       "                4.4,\n",
       "                6.4,\n",
       "                9.2,\n",
       "                11.0\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 8301276\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u5916\\u6559\",\n",
       "                \"\\u4e2d\\u6559\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": 30,\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 15,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u5b66\\u5386\\u4e0d\\u9650\\nAny education\",\n",
       "                \"\\u9ad8\\u4e2d\",\n",
       "                \"\\u5927\\u4e13\\nAssociate\",\n",
       "                \"\\u672c\\u79d1\\nBachelor\",\n",
       "                \"\\u7855\\u58eb\\nMaster\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_e091b5f9e6bf40999cb66e802e330ea1.setOption(option_e091b5f9e6bf40999cb66e802e330ea1);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11b09b940>"
      ]
     },
     "execution_count": 352,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "attr = ['学历不限\\nAny education', '高中', '大专\\nAssociate',\n",
    "        '本科\\nBachelor', '硕士\\nMaster']\n",
    "value1 = [13.9, np.nan, 12.8, 16.3, 21.3]\n",
    "value2 = [7.5, 4.4, 6.4, 9.2, 11.0]\n",
    "\n",
    "bar = Bar(\"不同学历的英语外教与中教工资对比\", width = 700,height=500)\n",
    "bar.add(\"外教\", attr, value1, xaxis_label_textsize=15, legend_top=30,\n",
    "        yaxis_label_textsize=20, is_label_show=True)\n",
    "bar.add(\"中教\", attr, value2, xaxis_label_textsize=15, legend_top=30,\n",
    "        yaxis_label_textsize=20, is_label_show=True)\n",
    "bar"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 2. 市场对于洋外教的经验和学历要求如何？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "metadata": {},
   "outputs": [],
   "source": [
    "exp_demand = np.round(data_jlc['exp_title_clean'].value_counts()/data_jlc['exp_title_clean'].value_counts().sum()*100, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 225,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"fcc50220389b42adad4d0f7e70974655\" style=\"width:500px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_fcc50220389b42adad4d0f7e70974655 = echarts.init(document.getElementById('fcc50220389b42adad4d0f7e70974655'), null, {renderer: 'canvas'});\n",
       "var option_fcc50220389b42adad4d0f7e70974655 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u4e0d\\u540c\\u7ecf\\u9a8c\\u82f1\\u8bed\\u5916\\u6559\\u9700\\u6c42\\u767e\\u5206\\u6bd4(%)\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 3894595,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                70.8,\n",
       "                20.3,\n",
       "                6.1,\n",
       "                1.6,\n",
       "                1.3\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 3894595\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u5165\\u95e8\",\n",
       "                \"\\u4e2d\\u9ad8\\u7ea7\",\n",
       "                \"\\u7ba1\\u7406\",\n",
       "                \"\\u4e3b\\u4efb\",\n",
       "                \"\\u5b9e\\u4e60\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_fcc50220389b42adad4d0f7e70974655.setOption(option_fcc50220389b42adad4d0f7e70974655);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11aa37b38>"
      ]
     },
     "execution_count": 225,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bar = Bar(\"不同经验英语外教需求百分比(%)\", width = 500,height=500)\n",
    "\n",
    "bar.add(\"\", ['入门', '中高级', '管理', '主任', '实习'], exp_demand.values,  xaxis_label_textsize=20, \n",
    "        yaxis_label_textsize=20, is_label_show=True)\n",
    "bar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Bachelor         73.7\n",
       "Any education    24.0\n",
       "Associate         1.7\n",
       "Master            0.6\n",
       "Name: education, dtype: float64"
      ]
     },
     "execution_count": 201,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "degree_demand = np.round(data_jlc['education'].value_counts()/data_jlc['education'].value_counts().sum()*100, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"32e007f54f494826a7375095b85ef8a0\" style=\"width:500px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_32e007f54f494826a7375095b85ef8a0 = echarts.init(document.getElementById('32e007f54f494826a7375095b85ef8a0'), null, {renderer: 'canvas'});\n",
       "var option_32e007f54f494826a7375095b85ef8a0 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u4e0d\\u540c\\u5b66\\u5386\\u82f1\\u8bed\\u5916\\u6559\\u9700\\u6c42\\u767e\\u5206\\u6bd4(%)\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 6169466,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                73.7,\n",
       "                24.0,\n",
       "                1.7,\n",
       "                0.6\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 6169466\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 18,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u672c\\u79d1\",\n",
       "                \"\\u5b66\\u5386\\u4e0d\\u9650\",\n",
       "                \"\\u793e\\u533a\\u5927\\u5b66\",\n",
       "                \"\\u7855\\u58eb\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_32e007f54f494826a7375095b85ef8a0.setOption(option_32e007f54f494826a7375095b85ef8a0);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x113fdd1d0>"
      ]
     },
     "execution_count": 204,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bar = Bar(\"不同学历英语外教需求百分比(%)\", width = 500,height=500)\n",
    "\n",
    "bar.add(\"\", ['本科', '学历不限', '社区大学', '硕士'], degree_demand.values,  xaxis_label_textsize=18, \n",
    "        yaxis_label_textsize=20, is_label_show=True)\n",
    "bar"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 哪些地区对洋外教的需求多？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "metadata": {},
   "outputs": [],
   "source": [
    "area_demand = data_jlc['area'].value_counts().nlargest(11).drop('Others')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 226,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"3ee3ce4b170e4b96b429683f1b28cfd8\" style=\"width:600px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_3ee3ce4b170e4b96b429683f1b28cfd8 = echarts.init(document.getElementById('3ee3ce4b170e4b96b429683f1b28cfd8'), null, {renderer: 'canvas'});\n",
       "var option_3ee3ce4b170e4b96b429683f1b28cfd8 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u5bf9\\u5916\\u6559\\u9700\\u6c42\\u6392\\u540d\\u524d10\\u7684\\u57ce\\u5e02\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 6332881,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                428.0,\n",
       "                92.0,\n",
       "                89.0,\n",
       "                55.0,\n",
       "                22.0,\n",
       "                21.0,\n",
       "                19.0,\n",
       "                19.0,\n",
       "                15.0,\n",
       "                11.0\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 6332881\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 18,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u5317\\u4eac\",\n",
       "                \"\\u4e0a\\u6d77\",\n",
       "                \"\\u676d\\u5dde\",\n",
       "                \"\\u6df1\\u5733\",\n",
       "                \"\\u6210\\u90fd\",\n",
       "                \"\\u91cd\\u5e86\",\n",
       "                \"\\u5e7f\\u5dde\",\n",
       "                \"\\u6b66\\u6c49\",\n",
       "                \"\\u5357\\u4eac\",\n",
       "                \"\\u9752\\u5c9b\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#130f40\",\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_3ee3ce4b170e4b96b429683f1b28cfd8.setOption(option_3ee3ce4b170e4b96b429683f1b28cfd8);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11b583eb8>"
      ]
     },
     "execution_count": 226,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bar = Bar(\"对外教需求排名前10的城市\", width = 600,height=500)\n",
    "\n",
    "bar.add(\"\", ['北京', '上海', '杭州', '深圳', '成都', '重庆', '广州', '武汉', '南京', '青岛'], \n",
    "        area_demand.values,  xaxis_label_textsize=18, yaxis_label_textsize=20, \n",
    "        is_label_show=True, label_color = ['#130f40'])\n",
    "bar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 238,
   "metadata": {},
   "outputs": [],
   "source": [
    "salary_area = np.round(data_jlc.groupby('area')['salary_clean'].mean()[area_demand.index], 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 239,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Beijing      16.6\n",
       "Shanghai     16.4\n",
       "Hangzhou     15.6\n",
       "Shenzhen     17.5\n",
       "Chengdu      15.6\n",
       "Chongqing    11.7\n",
       "Guangzhou    15.4\n",
       "Wuhan        15.2\n",
       "Nanjing      10.8\n",
       "Qingdao      17.0\n",
       "Name: salary_clean, dtype: float64"
      ]
     },
     "execution_count": 239,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "salary_area"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 366,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "city\n",
       "上海    9.3\n",
       "北京    9.8\n",
       "南京    8.0\n",
       "广州    8.0\n",
       "成都    8.9\n",
       "杭州    8.9\n",
       "武汉    6.9\n",
       "深圳    8.6\n",
       "重庆    8.0\n",
       "青岛    7.8\n",
       "Name: salary_clean, dtype: float64"
      ]
     },
     "execution_count": 366,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 中教对应城市的平均薪酬\n",
    "city10 = ['北京', '上海', '杭州', '深圳', '成都', '重庆', '广州', '武汉', '南京', '青岛']\n",
    "np.round(data_wx[data_wx['city'].isin(city10)].groupby('city')['salary_clean'].mean(), 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 370,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"17e1fcbd2d0742868f06e260a96bdaf6\" style=\"width:800px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_17e1fcbd2d0742868f06e260a96bdaf6 = echarts.init(document.getElementById('17e1fcbd2d0742868f06e260a96bdaf6'), null, {renderer: 'canvas'});\n",
       "var option_17e1fcbd2d0742868f06e260a96bdaf6 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u5bf9\\u5916\\u6559\\u9700\\u6c42\\u6392\\u540d\\u524d10\\u7684\\u57ce\\u5e02\\u7684\\u5916\\u6559\\u548c\\u4e2d\\u6559\\u5e73\\u5747\\u5de5\\u8d44\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 1956960,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u5916\\u6559\",\n",
       "            \"data\": [\n",
       "                16.6,\n",
       "                16.4,\n",
       "                15.6,\n",
       "                17.5,\n",
       "                15.6,\n",
       "                11.7,\n",
       "                15.4,\n",
       "                15.2,\n",
       "                10.8,\n",
       "                17.0\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 1956960\n",
       "        },\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\\u4e2d\\u6559\",\n",
       "            \"data\": [\n",
       "                9.8,\n",
       "                9.3,\n",
       "                8.9,\n",
       "                8.6,\n",
       "                8.9,\n",
       "                8.0,\n",
       "                8.0,\n",
       "                6.9,\n",
       "                8.0,\n",
       "                7.8\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 1956960\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u5916\\u6559\",\n",
       "                \"\\u4e2d\\u6559\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": 30,\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 18,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u5317\\u4eac\",\n",
       "                \"\\u4e0a\\u6d77\",\n",
       "                \"\\u676d\\u5dde\",\n",
       "                \"\\u6df1\\u5733\",\n",
       "                \"\\u6210\\u90fd\",\n",
       "                \"\\u91cd\\u5e86\",\n",
       "                \"\\u5e7f\\u5dde\",\n",
       "                \"\\u6b66\\u6c49\",\n",
       "                \"\\u5357\\u4eac\",\n",
       "                \"\\u9752\\u5c9b\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_17e1fcbd2d0742868f06e260a96bdaf6.setOption(option_17e1fcbd2d0742868f06e260a96bdaf6);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11b0abd30>"
      ]
     },
     "execution_count": 370,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bar = Bar(\"对外教需求排名前10的城市的外教和中教平均工资\", width = 800,height=500)\n",
    "\n",
    "bar.add(\"外教\", city10, salary_area.values,  xaxis_label_textsize=18, yaxis_label_textsize=20, \n",
    "        is_label_show=True, legend_top=30)\n",
    "bar.add(\"中教\", city10, [9.8, 9.3, 8.9, 8.6, 8.9, 8.0, 8.0, 6.9, 8.0, 7.8],  \n",
    "        xaxis_label_textsize=18, yaxis_label_textsize=20, is_label_show=True, legend_top=30)\n",
    "bar"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 4. 什么机构在招聘洋外教？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 222,
   "metadata": {},
   "outputs": [],
   "source": [
    "com_type_demand = data_jlc['com_type'].value_counts().nlargest(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 223,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Teaching Center            562\n",
       "School                     281\n",
       "Consultancy/Legal/Admin     43\n",
       "Others                      38\n",
       "Outsourcing                 12\n",
       "Name: com_type, dtype: int64"
      ]
     },
     "execution_count": 223,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "com_type_demand"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 243,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"7b37fbe35def40039beeb599a4cdeb6a\" style=\"width:600px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_7b37fbe35def40039beeb599a4cdeb6a = echarts.init(document.getElementById('7b37fbe35def40039beeb599a4cdeb6a'), null, {renderer: 'canvas'});\n",
       "var option_7b37fbe35def40039beeb599a4cdeb6a = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u5bf9\\u5916\\u6559\\u9700\\u6c42\\u6392\\u540d\\u524d5\\u7684\\u5355\\u4f4d\\u7c7b\\u578b\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 6374031,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                562.0,\n",
       "                281.0,\n",
       "                43.0,\n",
       "                38.0,\n",
       "                12.0\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 6374031\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 18,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u57f9\\u8bad\\u673a\\u6784\",\n",
       "                \"\\u5b66\\u6821\",\n",
       "                \"\\u54a8\\u8be2\\u673a\\u6784\",\n",
       "                \"\\u5176\\u5b83\",\n",
       "                \"\\u5916\\u5305\\u673a\\u6784\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#130f40\",\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_7b37fbe35def40039beeb599a4cdeb6a.setOption(option_7b37fbe35def40039beeb599a4cdeb6a);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11c57d710>"
      ]
     },
     "execution_count": 243,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bar = Bar(\"对外教需求排名前5的单位类型\", width = 600,height=500)\n",
    "\n",
    "bar.add(\"\", ['培训机构', '学校', '咨询机构', '其它', '外包机构'], \n",
    "        com_type_demand.values,  xaxis_label_textsize=18, yaxis_label_textsize=20, \n",
    "        is_label_show=True, label_color = ['#130f40'])\n",
    "bar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 230,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Bachelor         70.1\n",
       "Any education    27.6\n",
       "Associate         1.8\n",
       "Master            0.5\n",
       "Name: education, dtype: float64"
      ]
     },
     "execution_count": 230,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.round(data_jlc.loc[data_jlc['com_type'] =='Teaching Center', 'education'].value_counts()/562*100, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 241,
   "metadata": {},
   "outputs": [],
   "source": [
    "salary_com_type = np.round(data_jlc.groupby('com_type')['salary_clean'].mean()[com_type_demand.index], 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 242,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Teaching Center            14.5\n",
       "School                     18.1\n",
       "Consultancy/Legal/Admin    17.0\n",
       "Others                     16.8\n",
       "Outsourcing                15.0\n",
       "Name: salary_clean, dtype: float64"
      ]
     },
     "execution_count": 242,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "salary_com_type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 244,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"bb5e0f3eaf304e2395838132f8ea0912\" style=\"width:600px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_bb5e0f3eaf304e2395838132f8ea0912 = echarts.init(document.getElementById('bb5e0f3eaf304e2395838132f8ea0912'), null, {renderer: 'canvas'});\n",
       "var option_bb5e0f3eaf304e2395838132f8ea0912 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u5bf9\\u5916\\u6559\\u9700\\u6c42\\u6392\\u540d\\u524d5\\u7684\\u5355\\u4f4d\\u7c7b\\u578b\\u7684\\u5916\\u6559\\u5e73\\u5747\\u5de5\\u8d44\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 7854265,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"bar\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                14.5,\n",
       "                18.1,\n",
       "                17.0,\n",
       "                16.8,\n",
       "                15.0\n",
       "            ],\n",
       "            \"stack\": \"\",\n",
       "            \"barCategoryGap\": \"20%\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"top\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 12\n",
       "                    },\n",
       "                    \"formatter\": null\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"markPoint\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"markLine\": {\n",
       "                \"data\": []\n",
       "            },\n",
       "            \"seriesId\": 7854265\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"xAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"interval\": \"auto\",\n",
       "                \"rotate\": 0,\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 18,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"data\": [\n",
       "                \"\\u57f9\\u8bad\\u673a\\u6784\",\n",
       "                \"\\u5b66\\u6821\",\n",
       "                \"\\u54a8\\u8be2\\u673a\\u6784\",\n",
       "                \"\\u5176\\u5b83\",\n",
       "                \"\\u5916\\u5305\\u673a\\u6784\"\n",
       "            ],\n",
       "            \"type\": \"category\"\n",
       "        }\n",
       "    ],\n",
       "    \"yAxis\": [\n",
       "        {\n",
       "            \"name\": \"\",\n",
       "            \"show\": true,\n",
       "            \"nameLocation\": \"middle\",\n",
       "            \"nameGap\": 25,\n",
       "            \"nameTextStyle\": {\n",
       "                \"fontSize\": 14\n",
       "            },\n",
       "            \"axisLabel\": {\n",
       "                \"formatter\": \"{value} \",\n",
       "                \"rotate\": 0,\n",
       "                \"interval\": \"auto\",\n",
       "                \"margin\": 8,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 20,\n",
       "                    \"color\": \"#000\"\n",
       "                }\n",
       "            },\n",
       "            \"axisTick\": {\n",
       "                \"alignWithLabel\": false\n",
       "            },\n",
       "            \"inverse\": false,\n",
       "            \"position\": null,\n",
       "            \"boundaryGap\": true,\n",
       "            \"min\": null,\n",
       "            \"max\": null,\n",
       "            \"splitLine\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"type\": \"value\"\n",
       "        }\n",
       "    ],\n",
       "    \"color\": [\n",
       "        \"#130f40\",\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_bb5e0f3eaf304e2395838132f8ea0912.setOption(option_bb5e0f3eaf304e2395838132f8ea0912);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.bar.Bar at 0x11cf63080>"
      ]
     },
     "execution_count": 244,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bar = Bar(\"对外教需求排名前5的单位类型的外教平均工资\", width = 600,height=500)\n",
    "\n",
    "bar.add(\"\", ['培训机构', '学校', '咨询机构', '其它', '外包机构'], \n",
    "        salary_com_type.values,  xaxis_label_textsize=18, yaxis_label_textsize=20, \n",
    "        is_label_show=True, label_color = ['#130f40'])\n",
    "bar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 377,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "education\n",
       "Any education    0.275801\n",
       "Associate        0.017794\n",
       "Bachelor         0.701068\n",
       "Master           0.005338\n",
       "Name: com_type, dtype: float64"
      ]
     },
     "execution_count": 377,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_jlc[data_jlc['com_type']=='Teaching Center'].groupby('education')['com_type'].count()/562"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 258,
   "metadata": {},
   "outputs": [],
   "source": [
    "company = data_jlc['company'].value_counts().nlargest(50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 322,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min', 'wordcloud': '/nbextensions/echarts/echarts-wordcloud.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"e7ed0cf353a2443496c7f713c36cb3bf\" style=\"width:1000px;height:600px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts', 'wordcloud'], function(echarts) {\n",
       "        \n",
       "var myChart_e7ed0cf353a2443496c7f713c36cb3bf = echarts.init(document.getElementById('e7ed0cf353a2443496c7f713c36cb3bf'), null, {renderer: 'canvas'});\n",
       "var option_e7ed0cf353a2443496c7f713c36cb3bf = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 7814139,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"wordCloud\",\n",
       "            \"name\": \"\",\n",
       "            \"shape\": \"circle\",\n",
       "            \"rotationRange\": [\n",
       "                -90,\n",
       "                90\n",
       "            ],\n",
       "            \"rotationStep\": 45,\n",
       "            \"girdSize\": 20,\n",
       "            \"sizeRange\": [\n",
       "                20,\n",
       "                100\n",
       "            ],\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"LCAIS\",\n",
       "                    \"value\": 99.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(7,51,24)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Wilshire Global Consulting\",\n",
       "                    \"value\": 89.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(35,1,124)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Hailiang ECE\",\n",
       "                    \"value\": 57.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(47,82,141)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Geosita Educational Technology Limited Coo\",\n",
       "                    \"value\": 32.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(11,62,151)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"51talk\",\n",
       "                    \"value\": 31.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(102,31,43)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"USKid\",\n",
       "                    \"value\": 27.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(113,158,115)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Sara\",\n",
       "                    \"value\": 25.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(34,137,128)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"ESL JOB IN CHINA\",\n",
       "                    \"value\": 24.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(80,32,99)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"JingJobs\",\n",
       "                    \"value\": 20.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(48,74,52)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"T-school\",\n",
       "                    \"value\": 16.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(44,11,111)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Meten\",\n",
       "                    \"value\": 15.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(2,134,103)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"TALENT WAY\",\n",
       "                    \"value\": 15.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(155,127,152)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Elantu\",\n",
       "                    \"value\": 14.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(112,113,128)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"DaDaABC\",\n",
       "                    \"value\": 13.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(24,42,8)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"New Pathway\",\n",
       "                    \"value\": 11.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(122,54,9)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"V-Ron International English\",\n",
       "                    \"value\": 10.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(22,101,72)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"I2 \\u56fd\\u9645\\u79c1\\u587e\",\n",
       "                    \"value\": 10.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(6,81,111)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Relevant\",\n",
       "                    \"value\": 9.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(123,146,103)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"51Laoy\",\n",
       "                    \"value\": 9.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(127,133,50)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Cecilia\",\n",
       "                    \"value\": 9.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(99,83,51)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u7f8e\\u56fd\\u79c1\\u587e\",\n",
       "                    \"value\": 8.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(132,15,68)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Wuhan Golden Apple Tree Education Consultation Co.\",\n",
       "                    \"value\": 8.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(43,22,90)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"boxfish-edu\",\n",
       "                    \"value\": 7.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(100,50,102)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Beijing Prepare\",\n",
       "                    \"value\": 7.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(63,56,136)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Sendelta Education\",\n",
       "                    \"value\": 7.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(17,150,6)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"WEBi ENGLISH \",\n",
       "                    \"value\": 6.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(136,151,29)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Linko\",\n",
       "                    \"value\": 6.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(75,32,52)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Spirit Kids Royal English\",\n",
       "                    \"value\": 6.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(68,88,126)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Expert International Education\",\n",
       "                    \"value\": 5.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(25,52,109)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"ABIE\",\n",
       "                    \"value\": 5.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(29,67,135)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Yungu School\",\n",
       "                    \"value\": 5.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(90,20,139)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"K12 Education\",\n",
       "                    \"value\": 5.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(64,11,39)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"PalFish Education\",\n",
       "                    \"value\": 5.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(141,157,121)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Imagine Education Group\",\n",
       "                    \"value\": 5.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(47,72,81)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Field Education\",\n",
       "                    \"value\": 5.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(127,79,155)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Tianshuo Education\",\n",
       "                    \"value\": 5.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(115,77,45)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"EF Guiyang School\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(82,1,61)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Prestige\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(54,132,31)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"The Intelligent and Creative Sailor Company\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(38,10,153)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"BoWen Academy\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(119,43,57)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Zhejiang Commercial Human Resources Center\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(64,128,160)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"BabyCandy\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(65,124,2)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Wanfu Edu\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(33,146,159)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Infotop\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(135,81,31)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"KB Financial\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(109,5,22)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"HeNan Liyun\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(79,65,118)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Phinnie Education Group\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(110,87,79)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Linguatutor \",\n",
       "                    \"value\": 3.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(118,53,90)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"TutuageHR\",\n",
       "                    \"value\": 3.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(46,41,20)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"TLC for Kids Shanghai\",\n",
       "                    \"value\": 3.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(70,11,146)\"\n",
       "                        }\n",
       "                    }\n",
       "                }\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_e7ed0cf353a2443496c7f713c36cb3bf.setOption(option_e7ed0cf353a2443496c7f713c36cb3bf);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.wordcloud.WordCloud at 0x113843860>"
      ]
     },
     "execution_count": 322,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts import WordCloud\n",
    "\n",
    "wordcloud = WordCloud(width=1000, height=600)\n",
    "wordcloud.add(\"\", company.index, company.values, word_size_range=[20, 100])\n",
    "wordcloud"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5. 洋外教来源真的很乱吗？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 378,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 498 entries, 0 to 497\n",
      "Data columns (total 6 columns):\n",
      "NickName     498 non-null object\n",
      "City         282 non-null object\n",
      "Province     358 non-null object\n",
      "Sex          498 non-null int64\n",
      "Signature    273 non-null object\n",
      "Province2    358 non-null object\n",
      "dtypes: int64(1), object(5)\n",
      "memory usage: 23.4+ KB\n"
     ]
    }
   ],
   "source": [
    "data_gm.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 267,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>NickName</th>\n",
       "      <th>City</th>\n",
       "      <th>Province</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Signature</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>Carl</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>leveluped.org</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>91</th>\n",
       "      <td>Sammy</td>\n",
       "      <td>Newport</td>\n",
       "      <td>Wales</td>\n",
       "      <td>1</td>\n",
       "      <td>Live a life dat wen u die,u will be &lt;span clas...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>254</th>\n",
       "      <td>Chunky 查努克</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>&lt;span class=\"emoji emoji1f3ca\"&gt;&lt;/span&gt;🏼🏓🏋🏽&lt;spa...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>212</th>\n",
       "      <td>scarlett</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Frankfurt</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>244</th>\n",
       "      <td>Jackson 佩斯福</td>\n",
       "      <td>南开</td>\n",
       "      <td>天津</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        NickName     City   Province  Sex  \\\n",
       "59          Carl      NaN        NaN    1   \n",
       "91         Sammy  Newport      Wales    1   \n",
       "254   Chunky 查努克      NaN        NaN    1   \n",
       "212    scarlett       NaN  Frankfurt    2   \n",
       "244  Jackson 佩斯福       南开         天津    1   \n",
       "\n",
       "                                             Signature  \n",
       "59                                       leveluped.org  \n",
       "91   Live a life dat wen u die,u will be <span clas...  \n",
       "254  <span class=\"emoji emoji1f3ca\"></span>🏼🏓🏋🏽<spa...  \n",
       "212                                                NaN  \n",
       "244                                                NaN  "
      ]
     },
     "execution_count": 267,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_gm.sample(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 270,
   "metadata": {},
   "outputs": [],
   "source": [
    "sex = data_gm['Sex'].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 303,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"1d02a22f845a4b86a13753ccc6fb69bf\" style=\"width:500px;height:500px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts'], function(echarts) {\n",
       "        \n",
       "var myChart_1d02a22f845a4b86a13753ccc6fb69bf = echarts.init(document.getElementById('1d02a22f845a4b86a13753ccc6fb69bf'), null, {renderer: 'canvas'});\n",
       "var option_1d02a22f845a4b86a13753ccc6fb69bf = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\\u6027\\u522b\\u6bd4\\u4f8b\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 6840995,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"pie\",\n",
       "            \"name\": \"\",\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"\\u7537\\u6027\",\n",
       "                    \"value\": 262.0\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u5973\\u6027\",\n",
       "                    \"value\": 191.0\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"\\u672a\\u77e5\",\n",
       "                    \"value\": 45.0\n",
       "                }\n",
       "            ],\n",
       "            \"radius\": [\n",
       "                \"25%\",\n",
       "                \"50%\"\n",
       "            ],\n",
       "            \"center\": [\n",
       "                \"50%\",\n",
       "                \"50%\"\n",
       "            ],\n",
       "            \"roseType\": \"radius\",\n",
       "            \"label\": {\n",
       "                \"normal\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"outside\",\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#000\",\n",
       "                        \"fontSize\": 16\n",
       "                    },\n",
       "                    \"formatter\": \"{b}: {d}%\"\n",
       "                },\n",
       "                \"emphasis\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": null,\n",
       "                    \"textStyle\": {\n",
       "                        \"color\": \"#fff\",\n",
       "                        \"fontSize\": 12\n",
       "                    }\n",
       "                }\n",
       "            },\n",
       "            \"seriesId\": 6840995\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [\n",
       "                \"\\u7537\\u6027\",\n",
       "                \"\\u5973\\u6027\",\n",
       "                \"\\u672a\\u77e5\"\n",
       "            ],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 16,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"white\",\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_1d02a22f845a4b86a13753ccc6fb69bf.setOption(option_1d02a22f845a4b86a13753ccc6fb69bf);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.pie.Pie at 0x11c4c0470>"
      ]
     },
     "execution_count": 303,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyecharts import Pie\n",
    "\n",
    "\n",
    "pie =Pie('性别比例',background_color = 'white', width=500, height=500)\n",
    "pie.add('',['男性', '女性', '未知'],sex.values, \n",
    "        center = [50,50],radius=[25, 50],rosetype='radius', is_label_show=True,\n",
    "       legend_text_size=16, label_text_size=16)\n",
    "pie"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 342,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/ipykernel_launcher.py:1: FutureWarning: currently extract(expand=None) means expand=False (return Index/Series/DataFrame) but in a future version of pandas this will be changed to expand=True (return DataFrame)\n",
      "  \"\"\"Entry point for launching an IPython kernel.\n"
     ]
    }
   ],
   "source": [
    "data_gm['Province2'] = data_gm['Province'].str.extract(r\"([a-z|A-Z]*\\s?[a-z|A-Z]*)\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 345,
   "metadata": {},
   "outputs": [],
   "source": [
    "province = data_gm['Province2'].value_counts().drop('')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 346,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Ontario              4\n",
       "Paris                4\n",
       "Johannesburg         3\n",
       "California           3\n",
       "Florida              3\n",
       "New York             3\n",
       "England              3\n",
       "Istanbul             2\n",
       "Dubai                2\n",
       "Auckland             2\n",
       "Lyon                 1\n",
       "Amsterdam            1\n",
       "Maryland             1\n",
       "Christchurch         1\n",
       "Abbotsford           1\n",
       "Western Australia    1\n",
       "Frankfurt            1\n",
       "British Columbia     1\n",
       "Quebec               1\n",
       "Scotland             1\n",
       "Clare                1\n",
       "Toronto              1\n",
       "Aragua               1\n",
       "Cologne              1\n",
       "Dunedin              1\n",
       "Chelyabinsk          1\n",
       "Buenos Aires         1\n",
       "Wales                1\n",
       "Bangkok              1\n",
       "Sumatera Utara       1\n",
       "Cape Town            1\n",
       "Manila               1\n",
       "Hamburg              1\n",
       "Virginia             1\n",
       "La Coruna            1\n",
       "Leeuwarden           1\n",
       "North Carolina       1\n",
       "Arizona              1\n",
       "Milano               1\n",
       "New Jersey           1\n",
       "Vienna               1\n",
       "Venice               1\n",
       "Kazan                1\n",
       "Hyderabad            1\n",
       "Madrid               1\n",
       "Illinois             1\n",
       "Osaka                1\n",
       "Waterford            1\n",
       "Texas                1\n",
       "Hoofddorp            1\n",
       "Name: Province2, dtype: int64"
      ]
     },
     "execution_count": 346,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "province"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 349,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts': '/nbextensions/echarts/echarts.min', 'wordcloud': '/nbextensions/echarts/echarts-wordcloud.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "    <div id=\"ca8bfe19b0ad486cbee03c5c401578a7\" style=\"width:1000px;height:600px;\"></div>\n",
       "\n",
       "\n",
       "<script>\n",
       "    require(['echarts', 'wordcloud'], function(echarts) {\n",
       "        \n",
       "var myChart_ca8bfe19b0ad486cbee03c5c401578a7 = echarts.init(document.getElementById('ca8bfe19b0ad486cbee03c5c401578a7'), null, {renderer: 'canvas'});\n",
       "var option_ca8bfe19b0ad486cbee03c5c401578a7 = {\n",
       "    \"title\": [\n",
       "        {\n",
       "            \"text\": \"\",\n",
       "            \"subtext\": \"\",\n",
       "            \"left\": \"auto\",\n",
       "            \"top\": \"auto\",\n",
       "            \"textStyle\": {\n",
       "                \"color\": \"#000\",\n",
       "                \"fontSize\": 18\n",
       "            },\n",
       "            \"subtextStyle\": {\n",
       "                \"color\": \"#aaa\",\n",
       "                \"fontSize\": 12\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"toolbox\": {\n",
       "        \"show\": true,\n",
       "        \"orient\": \"vertical\",\n",
       "        \"left\": \"95%\",\n",
       "        \"top\": \"center\",\n",
       "        \"feature\": {\n",
       "            \"saveAsImage\": {\n",
       "                \"show\": true,\n",
       "                \"title\": \"\\u4e0b\\u8f7d\\u56fe\\u7247\"\n",
       "            },\n",
       "            \"restore\": {\n",
       "                \"show\": true\n",
       "            },\n",
       "            \"dataView\": {\n",
       "                \"show\": true\n",
       "            }\n",
       "        }\n",
       "    },\n",
       "    \"series_id\": 8260203,\n",
       "    \"tooltip\": {\n",
       "        \"trigger\": \"item\",\n",
       "        \"triggerOn\": \"mousemove|click\",\n",
       "        \"axisPointer\": {\n",
       "            \"type\": \"line\"\n",
       "        },\n",
       "        \"formatter\": null,\n",
       "        \"textStyle\": {\n",
       "            \"color\": \"#fff\",\n",
       "            \"fontSize\": 14\n",
       "        },\n",
       "        \"backgroundColor\": \"rgba(50,50,50,0.7)\",\n",
       "        \"borderColor\": \"#333\",\n",
       "        \"borderWidth\": 0\n",
       "    },\n",
       "    \"series\": [\n",
       "        {\n",
       "            \"type\": \"wordCloud\",\n",
       "            \"name\": \"\",\n",
       "            \"shape\": \"circle\",\n",
       "            \"rotationRange\": [\n",
       "                -90,\n",
       "                90\n",
       "            ],\n",
       "            \"rotationStep\": 45,\n",
       "            \"girdSize\": 20,\n",
       "            \"sizeRange\": [\n",
       "                20,\n",
       "                60\n",
       "            ],\n",
       "            \"data\": [\n",
       "                {\n",
       "                    \"name\": \"Ontario\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(81,135,11)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Paris\",\n",
       "                    \"value\": 4.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(139,45,51)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Johannesburg\",\n",
       "                    \"value\": 3.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(93,135,62)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"California\",\n",
       "                    \"value\": 3.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(126,47,144)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Florida\",\n",
       "                    \"value\": 3.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(60,43,80)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"New York\",\n",
       "                    \"value\": 3.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(130,140,46)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"England\",\n",
       "                    \"value\": 3.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(13,86,154)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Istanbul\",\n",
       "                    \"value\": 2.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(22,42,57)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Dubai\",\n",
       "                    \"value\": 2.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(48,133,26)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Auckland\",\n",
       "                    \"value\": 2.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(121,154,88)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Lyon\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(51,90,128)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Amsterdam\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(117,6,79)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Maryland\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(57,5,68)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Christchurch\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(139,74,35)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Abbotsford\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(61,132,116)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Western Australia\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(78,52,54)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Frankfurt\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(25,59,54)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"British Columbia\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(69,119,73)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Quebec\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(19,106,85)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Scotland\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(7,2,23)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Clare\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(48,18,20)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Toronto\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(136,65,158)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Aragua\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(133,37,126)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Cologne\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(13,133,131)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Dunedin\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(35,145,46)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Chelyabinsk\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(44,133,107)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Buenos Aires\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(97,129,34)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Wales\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(47,47,82)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Bangkok\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(20,87,125)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Sumatera Utara\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(106,17,124)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Cape Town\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(153,69,0)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Manila\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(40,49,14)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Hamburg\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(18,13,1)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Virginia\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(114,107,50)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"La Coruna\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(50,112,89)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Leeuwarden\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(48,3,68)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"North Carolina\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(31,66,16)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Arizona\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(125,144,46)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Milano\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(102,58,64)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"New Jersey\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(113,25,7)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Vienna\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(141,117,65)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Venice\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(159,8,56)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Kazan\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(148,89,25)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Hyderabad\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(103,115,145)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Madrid\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(12,131,8)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Illinois\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(135,113,14)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Osaka\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(137,84,100)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Waterford\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(145,91,72)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Texas\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(80,21,1)\"\n",
       "                        }\n",
       "                    }\n",
       "                },\n",
       "                {\n",
       "                    \"name\": \"Hoofddorp\",\n",
       "                    \"value\": 1.0,\n",
       "                    \"textStyle\": {\n",
       "                        \"normal\": {\n",
       "                            \"color\": \"rgb(77,40,137)\"\n",
       "                        }\n",
       "                    }\n",
       "                }\n",
       "            ]\n",
       "        }\n",
       "    ],\n",
       "    \"legend\": [\n",
       "        {\n",
       "            \"data\": [],\n",
       "            \"selectedMode\": \"multiple\",\n",
       "            \"show\": true,\n",
       "            \"left\": \"center\",\n",
       "            \"top\": \"top\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"textStyle\": {\n",
       "                \"fontSize\": 12,\n",
       "                \"color\": \"#333\"\n",
       "            }\n",
       "        }\n",
       "    ],\n",
       "    \"backgroundColor\": \"#fff\",\n",
       "    \"color\": [\n",
       "        \"#c23531\",\n",
       "        \"#2f4554\",\n",
       "        \"#61a0a8\",\n",
       "        \"#d48265\",\n",
       "        \"#749f83\",\n",
       "        \"#ca8622\",\n",
       "        \"#bda29a\",\n",
       "        \"#6e7074\",\n",
       "        \"#546570\",\n",
       "        \"#c4ccd3\",\n",
       "        \"#f05b72\",\n",
       "        \"#ef5b9c\",\n",
       "        \"#f47920\",\n",
       "        \"#905a3d\",\n",
       "        \"#fab27b\",\n",
       "        \"#2a5caa\",\n",
       "        \"#444693\",\n",
       "        \"#726930\",\n",
       "        \"#b2d235\",\n",
       "        \"#6d8346\",\n",
       "        \"#ac6767\",\n",
       "        \"#1d953f\",\n",
       "        \"#6950a1\",\n",
       "        \"#918597\",\n",
       "        \"#f6f5ec\"\n",
       "    ]\n",
       "};\n",
       "myChart_ca8bfe19b0ad486cbee03c5c401578a7.setOption(option_ca8bfe19b0ad486cbee03c5c401578a7);\n",
       "\n",
       "    });\n",
       "</script>\n"
      ],
      "text/plain": [
       "<pyecharts.charts.wordcloud.WordCloud at 0x11d52ffd0>"
      ]
     },
     "execution_count": 349,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wordcloud = WordCloud(width=1000, height=600)\n",
    "wordcloud.add(\"\", province.index, province.values, word_size_range=[20, 60])\n",
    "wordcloud"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
